From e0cc9a8160e75b0273b1fded5db157f4fdea3e67 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:36:14 +0000 Subject: [PATCH 001/403] CAR-151 initial prototype form --- runner/src/server/forms/ReportAnOutbreak.json | 1799 +++++++++++++++++ 1 file changed, 1799 insertions(+) create mode 100644 runner/src/server/forms/ReportAnOutbreak.json diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json new file mode 100644 index 0000000000..8c1a055a4c --- /dev/null +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -0,0 +1,1799 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "path": "/start", + "title": "Report an outbreak of acute respiratory infection in an adult social care setting", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Applies to England

\n", + "schema": {} + }, + { + "name": "nMOTry", + "options": {}, + "type": "Para", + "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), or unknown respiratory infection including chest infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n \n\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak or cluster of ARI that you've already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Do not use this service to report:

\n \n

Read more on:

\n \n

Why you should report an outbreak

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team during working hours.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n", + "schema": {} + } + ], + "next": [ + { + "path": "/setting" + } + ], + "controller": "./pages/start.js" + }, + { + "path": "/setting", + "title": "What type of adult social care do you provide?", + "components": [ + { + "name": "S4Q9", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "What type of adult social care do you provide?", + "list": "MpSRIP", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/positive-ari" + } + ] + }, + { + "path": "/positive-ari", + "title": "Do you have any positive test results for an acute respiratory infection?", + "components": [ + { + "name": "PositiveARI", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Do you have any positive test results for an acute respiratory infection?", + "hint": "Acute respiratory infections include COVID-19, flu, respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/2-or-more-ari", + "condition": "sUrRwU" + }, + { + "path": "/which-ari" + } + ] + }, + { + "path": "/which-ari", + "title": "Which acute respiratory infections do you have a positive test result for? ", + "components": [ + { + "name": "WhichARI", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Which acute respiratory infections do you have a positive test result for? ", + "list": "InfectionTypes", + "hint": "You can select more than one option", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/check-answers", + "condition": "einiQH" + }, + { + "path": "/2-or-more-cases-not-covid-or-flu", + "condition": "fknfQQQ" + }, + { + "path": "/2-or-more-covid" + } + ] + }, + { + "path": "/2-or-more-covid", + "title": "Are you reporting 2 or more cases of COVID-19?", + "components": [ + { + "name": "TwoOrMoreCovid", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you reporting 2 or more cases of COVID-19?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "fninfWW" + }, + { + "path": "/2-or-more-covid-details" + } + ] + }, + { + "path": "/2-or-more-covid-details", + "title": "COVID-19 in your setting", + "components": [ + { + "name": "TwoOrMoreCovid5days", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?", + "list": "YesNoSure", + "values": { + "type": "listRef" + } + }, + { + "name": "TwoOrMoreCovidSpread", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​", + "list": "YesNoSure", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "dmdojqQH" + }, + { + "path": "/check-answers" + } + ] + }, + { + "path": "/2-or-more-ari", + "title": "Are you reporting 2 or more cases of an acute respiratory infection?", + "components": [ + { + "name": "TwoOrMoreARI", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you reporting 2 or more cases of an acute respiratory infection?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "yowninW" + }, + { + "path": "/check-answers" + } + ] + }, + { + "path": "/do-not-need-to-report", + "title": "You do not need to report", + "components": [] + }, + { + "path": "/check-answers", + "title": "Check your answers before continuing", + "next": [ + { + "path": "/cases-of-flu" + } + ] + }, + { + "path": "/2-or-more-cases-not-covid-or-flu", + "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "components": [ + { + "name": "TwoOrMoreCasesNotCovidFlu", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "yowninW" + }, + { + "path": "/ari-infection-type" + } + ] + }, + { + "path": "/ari-infection-type", + "title": "What infection are you reporting?", + "components": [ + { + "name": "ARIinfectionType", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "What infection are you reporting?", + "list": "ARIinfectionType", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "yowninW" + }, + { + "path": "/check-answers" + } + ] + }, + { + "path": "/cases-of-flu", + "title": "How many cases of flu are you reporting?", + "components": [ + { + "name": "NumberOfCasesOfFlu", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many cases of flu are you reporting?", + "list": "OneOrMore", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/single-case-of-flu", + "condition": "NumberOfCasesOfFlu:One" + }, + { + "path": "/multiple-cases-of-flu" + } + ] + }, + { + "path": "/single-case-of-flu", + "title": "Who has the case of flu?", + "components": [ + { + "name": "SingleCaseOfFluServiceOrStaff", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "Who has the case of flu?", + "list": "ServiceOrStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/symptom-onset-flu", + "condition": "SingleCaseOfFluServiceUserOrStaff:ServiceUser" + }, + { + "path": "/vaccination" + } + ] + }, + { + "path": "/multiple-cases-of-flu", + "title": "Who are you reporting cases or symptoms of flu in?", + "components": [ + { + "name": "MultipleCasesOfFluServiceOrStaff", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Who are you reporting cases or symptoms of flu in?", + "list": "ServiceOrStaffMultiple", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/multiple-cases-flu-service-users", + "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsers" + }, + { + "path": "/multiple-cases-flu-staff" + } + ] + }, + { + "path": "/multiple-cases-flu-service-users", + "title": "Service users: number of flu or chest infection cases", + "components": [ + { + "name": "ServiceUsersFluSwabTest", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have flu confirmed by a swab test?", + "hint": "Include those who are currently in hospital. If none, enter 0" + }, + { + "name": "ServiceUsersSuspectedFlu", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have suspected (not confirmed) flu?", + "hint": "Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause. Include those who are currently in hospital. If none, enter 0" + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Do not include cases you have already reported in this section as having confirmed or suspected flu Include those who are currently in hospital. If none, enter 0" + }, + { + "name": "ServiceUsersChestInfectionCovid19", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many of these service users with confirmed or suspected flu or a chest infection have been tested for COVID-19?", + "hint": "If none, enter 0" + }, + { + "name": "ServiceUsersChestInfectionCovid19Positive", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many of these service users tested for COVID-19 had a positive result?", + "hint": "If none, enter 0" + } + ], + "next": [ + { + "path": "/multiple-cases-flu-staff", + "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff" + }, + { + "path": "/symptom-onset-flu-multiple-cases" + } + ] + }, + { + "path": "/multiple-cases-flu-staff", + "title": "Staff: number of flu or chest infection cases", + "components": [ + { + "name": "ServiceUsersFluSwabTest", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have flu confirmed by a swab test?", + "hint": "Include those who are currently in hospital. If none, enter 0" + }, + { + "name": "StaffSuspectedFlu", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have suspected (not confirmed) flu?", + "hint": "Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause. Include those who are currently in hospital. If none, enter 0" + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Do not include cases you have already reported in this section as having confirmed or suspected flu Include those who are currently in hospital. If none, enter 0" + }, + { + "name": "StaffChestInfectionCovid19", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many of these staff members with confirmed or suspected flu or a chest infection have been tested for COVID-19?", + "hint": "If none, enter 0" + }, + { + "name": "StaffChestInfectionCovid19Positive", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many of these staff members tested for COVID-19 had a positive result?", + "hint": "If none, enter 0" + } + ], + "next": [ + { + "path": "/symptom-onset-flu-multiple-cases" + } + ] + }, + { + "path": "/symptom-onset-flu", + "title": "Symptom onset for the case of flu", + "components": [ + { + "name": "FluSymptomOnsetDate", + "options": {}, + "type": "DatePartsField", + "nameHasError": false, + "title": "When did symptoms start?", + "hint": "For example, 31 03 2024", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/flu-severity" + } + ] + }, + { + "path": "/flu-severity", + "title": "Severity of the case of flu", + "components": [ + { + "name": "FluSeverityCalledGP", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Have you called the GP because of the severity of illness in this case?", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeverityHospitalised", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Has the person been hospitalised with the flu?", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeverityDeath", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Has the person died with flu in this case?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/vaccination" + } + ] + }, + { + "path": "/vaccination", + "title": "Vaccination among your staff and service users", + "components": [ + { + "name": "ServiceUsersCovid19Vaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many service users are up to date with the current COVID-19 vaccination schedule?", + "values": { + "type": "listRef" + } + }, + { + "name": "StaffCovid19Vaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many staff are up to date with the current COVID-19 vaccination schedule?", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersFluVaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many service users have had the flu vaccine for this current winter season?", + "values": { + "type": "listRef" + } + }, + { + "name": "StaffFluVaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many staff have had the flu vaccine for this current winter season?", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersRSVVaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many service users have had the respiratory syncytial virus (RSV) vaccine?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/ipc" + } + ] + }, + { + "path": "/ipc", + "title": "Infection prevention and control (IPC) and outbreak management in your setting", + "components": [ + { + "name": "IPCPractices", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How often do you monitor staff IPC practices?", + "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", + "list": "IPCPractices", + "values": { + "type": "listRef" + } + }, + { + "name": "Issues", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "What issues are you currently experiencing and need support with?", + "hint": "You can select more than one option", + "list": "Issues", + "values": { + "type": "listRef" + } + }, + { + "name": "AGPs", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Does your setting undertake aerosol generating procedures (AGPs)?", + "hint": "For example, inserting or removing a tracheotomy or ostomy, non-invasive ventilation (NIV), bi-level positive airway pressure (BPAP), continuous positive airway pressure (CPA P), sputum induction, respiratory tract suctioning (mouth suctioning is not an AGP).", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/agps", + "condition": "AGPs:yes" + }, + { + "path": "/agency-staff" + } + ] + }, + { + "path": "/symptom-onset-flu-multiple-cases", + "title": "Symptom onset of flu or chest infection cases in this outbreak", + "components": [ + { + "name": "FluSymptomOnsetDateFirstCase", + "options": {}, + "type": "DatePartsField", + "nameHasError": false, + "title": "When did symptoms start in the first case of confirmed or suspected flu, or chest infection?", + "hint": "For example, 31 03 2024", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSymptomOnsetDateSecondCase", + "options": {}, + "type": "DatePartsField", + "nameHasError": false, + "title": "When did symptoms start in the second case of confirmed or suspected flu, or chest infection?", + "hint": "For example, 31 03 2024", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSymptomOnsetDateMostRecentCase", + "options": { + "required": false + }, + "type": "DatePartsField", + "nameHasError": false, + "title": "When did symptoms start in the most recent case of confirmed or suspected flu or chest infection?", + "hint": "For example, 31 03 2024", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/flu-severity-multiple-cases" + } + ] + }, + { + "path": "/flu-severity-multiple-cases", + "title": "Severity of flu or chest infection cases in this outbreak", + "components": [ + { + "name": "FluSeverityCalledGPMultipleCases", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many cases of suspected or confirmed flu or chest infection have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeverityHospitalisedMultipleCases", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many service users or staff have been hospitalised because of confirmed or suspected flu or chest infection in this outbreak?", + "list": "CaseNumbers", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeverityDeathMultipleCases", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many service users or staff have died because of confirmed or suspected flu or chest infection in this outbreak?", + "list": "CaseNumbers", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/vaccination" + } + ] + }, + { + "path": "/agps", + "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "components": [ + { + "name": "FFP3Masks", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "list": "FFP3Masks", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/agency-staff" + } + ] + }, + { + "path": "/agency-staff", + "title": "Do you use agency staff or share staff with other care settings?", + "components": [ + { + "name": "AgencyStaff", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Do you use agency staff or share staff with other care settings?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/setting-details", + "condition": "AgencyStaff:No" + }, + { + "path": "/additional-staff" + } + ] + }, + { + "path": "/additional-staff", + "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "components": [ + { + "name": "AdditionalStaff", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "list": "AdditionalStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/setting-details" + } + ] + }, + { + "path": "/setting-details", + "title": "Setting details", + "components": [ + { + "name": "SettingName", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Your setting name", + "hint": "The name of the setting where the cases are located, not the management company", + "values": { + "type": "listRef" + } + }, + { + "name": "SettingPostcode", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Your setting postcode", + "hint": "The postcode of the setting where the cases are located, not the management company", + "values": { + "type": "listRef" + } + }, + { + "name": "S0Q3", + "options": { + "required": true, + "customValidationMessages": { + "string.empty": "Your local UKHSA health protection team is required", + "string.base": "Your local UKHSA health protection team is required" + } + }, + "type": "SelectField", + "title": "Your local UKHSA health protection team", + "list": "sjgMDe", + "nameHasError": false, + "schema": {}, + "values": { + "type": "listRef" + } + }, + { + "name": "CQCRegistered", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Is your care setting registered with the Care Quality Commission (CQC)?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/contact-details" + } + ] + }, + { + "path": "/contact-details", + "title": "Contact details", + "components": [ + { + "name": "MainContactName", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Full name", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactJobTitle", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Job title", + "hint": "For example, manager, senior carer", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactPhoneNumber", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Phone number", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactEmailAddress", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Email address", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactName", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Full name", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactJobTitle", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Job title", + "hint": "For example, manager, senior carer", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactPhoneNumber", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Phone number", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactEmailAddress", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Email address", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/service-users" + } + ] + }, + { + "path": "/service-users", + "title": "Service users and staff", + "components": [ + { + "name": "ServiceUsersTypes", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Select the options that best describe the majority of your service users", + "list": "ServiceUsersTypes", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersCurrentlyLive", + "options": {}, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many service users currently live in your care setting or use your service?", + "list": "ServiceUsersTypes" + }, + { + "name": "ServiceUsersNumber", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users currently live in your care setting or use your service?" + } + ], + "next": [ + { + "path": "/summaryPage" + } + ] + }, + { + "path": "/summaryPage", + "title": "Check your answers before submitting your report", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Check your answers before sending your report

\n", + "schema": {} + } + ], + "next": [ + { + "path": "/reportSent" + } + ] + }, + { + "path": "/reportSent", + "title": "Service users and staff", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Report Sent

\n", + "schema": {} + } + ] + } + ], + "lists": [ + { + "title": "yes-no-sure", + "name": "YesNoSure", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + }, + { + "text": "Not sure", + "value": "Not sure" + } + ] + }, + { + "title": "infection-types", + "name": "InfectionTypes", + "type": "string", + "items": [ + { + "text": "COVID-19", + "value": "COVID-19" + }, + { + "text": "Flu", + "value": "Flu" + }, + { + "text": "Any other acute respiratory infections", + "value": "Any other acute respiratory infections", + "description": "including viruses such as respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus" + } + ] + }, + { + "title": "ari-infection-types", + "name": "ARIinfectionType", + "type": "string", + "items": [ + { + "text": "Adenovirus", + "value": "Adenovirus" + }, + { + "text": "Human Metapneumovirus (hMPV)", + "value": "Human Metapneumovirus (hMPV)" + }, + { + "text": "Parainfluenza", + "value": "Parainfluenza" + }, + { + "text": "Respiratory Syncytial Virus (RSV)", + "value": "Respiratory Syncytial Virus (RSV)" + }, + { + "text": "Rhinovirus", + "value": "Rhinovirus" + }, + { + "text": "Other acute respiratory infection", + "value": "Other acute respiratory infection" + } + ] + }, + { + "title": "social-care-provider-type", + "name": "MpSRIP", + "type": "string", + "items": [ + { + "text": "Residential care home", + "value": "Residential care home" + }, + { + "text": "Nursing care home", + "value": "Nursing care home" + }, + { + "text": "Residential and nursing care home", + "value": "Residential and nursing care home" + }, + { + "text": "Supported living", + "value": "Supported living or extra care (not high risk)" + }, + { + "text": "Extra care", + "value": "Extra care" + }, + { + "text": "Domiciliary or home care", + "value": "Domiciliary or home care" + }, + { + "text": "Rehabilitation, reablement or respite", + "value": "Rehabilitation, reablement or respite" + }, + { + "text": "Other adult social care", + "value": "Other" + } + ] + }, + { + "title": "one-or-more", + "name": "OneOrMore", + "type": "string", + "items": [ + { + "text": "1", + "value": "One" + }, + { + "text": "2 or more", + "value": "2 or more" + } + ] + }, + { + "title": "service-or-staff", + "name": "ServiceOrStaff", + "type": "string", + "items": [ + { + "text": "Service user", + "value": "Service user" + }, + { + "text": "Staff", + "value": "Staff" + } + ] + }, + { + "title": "service-or-staff-multiple", + "name": "ServiceOrStaffMultiple", + "type": "string", + "items": [ + { + "text": "Service users", + "value": "Service users" + }, + { + "text": "Staff", + "value": "Staff" + } + ] + }, + { + "title": "ipc-practices", + "name": "IPCPractices", + "type": "string", + "items": [ + { + "text": "We do not monitor infection prevention and control practices", + "value": "We do not monitor infection prevention and control practices" + }, + { + "text": "Within the last month", + "value": "Within the last month" + }, + { + "text": "Between 1 and 6 months ago", + "value": "Between 1 and 6 months ago" + }, + { + "text": "7 to 12 months ago", + "value": "7 to 12 months ago" + }, + { + "text": "more than 12 months ago", + "value": "more than 12 months ago" + } + ] + }, + { + "title": "case-numbers", + "name": "CaseNumbers", + "type": "string", + "items": [ + { + "text": "0", + "value": "None" + }, + { + "text": "1", + "value": "One" + }, + { + "text": "2 to 3", + "value": "2 to 3" + }, + { + "text": "4 to 5", + "value": "4 to 5" + }, + { + "text": "More than 5", + "value": "More than 5" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "issues", + "name": "Issues", + "type": "string", + "items": [ + { + "text": "COVID-19: access to treatments", + "value": "COVID-19: access to treatments" + }, + { + "text": "COVID-19: LFD test kit supply", + "value": "COVID-19: LFD test kit supply" + }, + { + "text": "Hand hygiene", + "value": "Hand hygiene" + }, + { + "text": "Isolation", + "value": "Isolation" + }, + { + "text": "New admissions or transfer of service users", + "value": "New admissions or transfer of service users" + }, + { + "text": "Staffing", + "value": "Staffing" + }, + { + "text": "Supply of PPE", + "value": "Supply of PPE" + }, + { + "text": "Use of PPE", + "value": "Use of PPE" + }, + { + "text": "Visits", + "value": "Visits" + }, + { + "text": "Waste, cleaning or laundry", + "value": "Waste, cleaning or laundry" + }, + { + "text": "No issues", + "value": "No issues" + } + ] + }, + { + "title": "ffp3-masks", + "name": "FFP3Masks", + "type": "string", + "items": [ + { + "text": "All", + "value": "All" + }, + { + "text": "Some", + "value": "Some" + }, + { + "text": "None", + "value": "None" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "additional-staff", + "name": "AdditionalStaff", + "type": "string", + "items": [ + { + "text": "Fewer than 5", + "value": "Fewer than 5" + }, + { + "text": "5 or more", + "value": "5 or more" + } + ] + }, + { + "title": "service-users-types", + "name": "ServiceUsersTypes", + "type": "string", + "items": [ + { + "text": "People with learning difficulties or learning disabilities", + "value": "People with learning difficulties or learning disabilities" + }, + { + "text": "People with physical disabilities or severe medical conditions", + "value": "People with physical disabilities or severe medical conditions" + }, + { + "text": "People with mental health needs", + "value": "People with mental health needs" + }, + { + "text": "People with substance misuse issues", + "value": "People with substance misuse issues" + }, + { + "text": "People living with dementia", + "value": "People living with dementia" + }, + { + "text": "Under 65 years", + "value": "Under 65 years" + }, + { + "text": "65 years or over", + "value": "65 years or over" + } + ] + }, + { + "title": "HPTs", + "name": "sjgMDe", + "type": "string", + "items": [ + { + "text": "East of England HPT", + "value": "East of England HPT" + }, + { + "text": "West Midlands HPT", + "value": "West Midlands HPT" + }, + { + "text": "South West HPT", + "value": "South West HPT" + } + ] + } + ], + "sections": [], + "conditions": [ + { + "displayName": "PositiveARI:No", + "name": "sUrRwU", + "value": { + "name": "PositiveARI:No", + "conditions": [ + { + "field": { + "name": "PositiveARI", + "type": "YesNoField", + "display": "Do you have any positive test results for an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreARI:No", + "name": "yowninW", + "value": { + "name": "TwoOrMoreARI:No", + "conditions": [ + { + "field": { + "name": "TwoOrMoreARI", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreCovid:No", + "name": "fninfWW", + "value": { + "name": "TwoOrMoreCovid:No", + "conditions": [ + { + "field": { + "name": "TwoOrMoreCovid", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of COVID-19?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:FLU", + "name": "einiQH", + "value": { + "name": "WhichARI:FLU", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + { + "displayName": "WhichARI:OTHER", + "name": "fknfQQQ", + "value": { + "name": "WhichARI:OTHER", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "ReportCovid:No", + "name": "dmdojqQH", + "value": { + "name": "ReportCovid:No", + "conditions": [ + { + "field": { + "name": "TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + }, + { + "coordinator": "or", + "field": { + "name": "TwoOrMoreCovidSpread", + "type": "RadiosField", + "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreCasesNotCovidFlu:NO", + "name": "fwnsinQ", + "value": { + "name": "TwoOrMoreCasesNotCovidFlu:NO", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + } + ] + } + }, + { + "displayName": "SingleCaseOfFluServiceUserOrStaff:ServiceUser", + "name": "SingleCaseOfFluServiceUserOrStaff:ServiceUser", + "value": { + "name": "SingleCaseOfFluServiceUserOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "SingleCaseOfFluServiceOrStaff", + "type": "RadiosField", + "display": "Who has the case of flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Service user", + "display": "Service user" + } + } + ] + } + }, + { + "displayName": "NumberOfCasesOfFlu:One", + "name": "NumberOfCasesOfFlu:One", + "value": { + "name": "NumberOfCasesOfFlu:One", + "conditions": [ + { + "field": { + "name": "NumberOfCasesOfFlu", + "type": "RadiosField", + "display": "How many cases of flu are you reporting?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "One", + "display": "1" + } + } + ] + } + }, + { + "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", + "value": { + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "MultipleCasesOfFluServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of flu in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", + "value": { + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", + "conditions": [ + { + "field": { + "name": "MultipleCasesOfFluServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of flu in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "MultipleCasesOfFluServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of flu in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "AGPs:yes", + "name": "AGPs:yes", + "value": { + "name": "AGPs:yes", + "conditions": [ + { + "field": { + "name": "AGPs", + "type": "YesNoField", + "display": "Does your setting undertake aerosol generating procedures (AGPs)?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + } + ] + } + }, + { + "displayName": "AgencyStaff:No", + "name": "AgencyStaff:No", + "value": { + "name": "AgencyStaff:No", + "conditions": [ + { + "field": { + "name": "AgencyStaff", + "type": "YesNoField", + "display": "Do you use agency staff or share staff with other care settings?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + } + ], + "fees": [], + "outputs": [], + "version": 2, + "skipSummary": false, + "declaration": "
\n

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.
\n

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth

\n\n", + "name": "Report an outbreak", + "feedback": { + "feedbackForm": true, + "url": "" + }, + "phaseBanner": { + "phase": "beta" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "We will send 2 automated emails to {{ S1Q8 }}", + "title": "Report sent" + } + } + } +} From 1603560861bfad8b4cfc06b9fa0edb15638da788 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Sun, 8 Dec 2024 09:38:55 +0000 Subject: [PATCH 002/403] add html to summary pages and report sent page --- runner/src/server/forms/ReportAnOutbreak.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8c1a055a4c..2df952c5f9 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -204,6 +204,14 @@ { "path": "/check-answers", "title": "Check your answers before continuing", + "components": [ + { + "name": "rofomf", + "options": {}, + "type": "Para", + "content": "

Acute respiratory infections in your setting

Setting typeResidential care homeChange
Positive test resultYesChange
InfectionFluChange
" + } + ], "next": [ { "path": "/cases-of-flu" @@ -1077,7 +1085,7 @@ "name": "nMOTrx", "options": {}, "type": "Para", - "content": "

Check your answers before sending your report

\n", + "content": "

Setting details

Your setting nameBelmont Care HomeChange
Your setting postcodeTQ5 0AHChange
Your local UKHSA health protection teamSouth West Health Protection TeamChange
Your Care Quality Commission (CQC) location ID000001888Change
Type of adult social care you provideResidential care homeChange

Contact details

Full name of contact personPat DeerfieldChange
Job title of contact personManagerChange
Telephone number07451300300Change
Email addressPat@cov.comChange

Infections you are reporting

Acute respiratory infections you are reportingFluChange
Number of cases of Flu you are reporting2 or moreChange
Symptoms in 2 or more cases of Flu started within 5 days of each otherYesChange
You think the cases of Flu could be linked by spread in your settingYesChange
At least one case of Flu has been confirmed by a positive testYesChange

Service users and staff

How would you describe the majority of your service usersService users, staffChange
Number of people that currently live in your setting or use your service27Change
Number of staff that work in your care setting or service7Change
Number of empty beds (optional)3Change

Flu in your setting

You are reporting cases or symptoms of Flu in service users or staff2Change
Number of service users who have Flu confirmed by a test5Change
Number of service users who have symptoms of an acute respiratory infection, but have not been tested for Flu5Change
Number of staff members who have Flu confirmed by a test1Change
Number of staff who have symptoms of an acute respiratory infection, but have not been tested for Flu2Change
Date symptoms started in the first case of Flu02 August 2024Change
Date symptoms started in the second case of Flu (optional)N/AChange
Date symptoms started in the most recent case of Flu10 August 2024Change

Vaccination among your staff and service users

Number of service users who have had the flu vaccine for this current winter season (optional)20Change
Number of staff who have had the flu vaccine for this current winter season (optional)6Change

Infection prevention and control (IPC) and outbreak management in your setting

How often are you monitoring staff IPC practicesWithin the last monthChange
Issues you are currently experiencing and need support withTest kit supplyChange
Your setting undertakes aerosol generating procedures (AGPs)YesChange
Staff carrying out aerosol generating procedures, wear fit-tested and FFP3 masksAllChange

Staffing

You use agency staff or share staff with other care settingsYesChange
Number of additional agency staff or staff shared with settings you have used during this outbreakFewer than 5Change
Your responses must be shared with your local Health Protection team and Local Authority infection control team and they will use them to help you to manage your situation.
", "schema": {} } ], @@ -1089,13 +1097,13 @@ }, { "path": "/reportSent", - "title": "Service users and staff", + "title": "", "components": [ { "name": "nMOTrx", "options": {}, "type": "Para", - "content": "

Report Sent

\n", + "content": "

Report sent

Your reference number
OS-5371

Your outbreak reference number

Your reference number is: OS-5371. Use this number if you need to contact the UKHSA health protection team about your outbreak.

What happens next

We will send 2 automated emails to Pel@coy.com.

An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk outbreak, a medium-risk outbreak, a high-priority outbreak, or a single case of flu.

An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team or community infection control team.

If your outbreak is high priority on a weekend or bank holiday

If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team. Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

If you need urgent medical advice

If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

Give feedback on this service

This is a new service. Help us improve it and give your feedback.

", "schema": {} } ] From 10ecc29274cf067835c9fba1471b44f8fce43bea Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:40:30 +0000 Subject: [PATCH 003/403] prototype modifications - remove extra start button, contact details h2s, confirm answers text, setting details links --- runner/src/server/forms/ReportAnOutbreak.json | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 2df952c5f9..d2a5f9fa9a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -26,7 +26,8 @@ "path": "/setting" } ], - "controller": "./pages/start.js" + "controller": "MultiStartPageController", + "showContinueButton": false }, { "path": "/setting", @@ -921,6 +922,13 @@ "values": { "type": "listRef" } + }, + { + "name": "nMOTdlmry", + "options": {}, + "type": "Para", + "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab)\n", + "schema": {} } ], "next": [ @@ -933,6 +941,15 @@ "path": "/contact-details", "title": "Contact details", "components": [ + { + "name": "heading1", + "options": { + "required": false + }, + "type": "Para", + "content": "

Provide a contact who will be available to receive:

If possible, provide a work phone number and email address instead of personal contact details.

Main contact person

", + "schema": {} + }, { "name": "MainContactName", "options": {}, @@ -976,6 +993,15 @@ "type": "listRef" } }, + { + "name": "heading1", + "options": { + "required": false + }, + "type": "Para", + "content": "

Alternative contact

Enter details for an alternative contact if you want the emails to also be sent to a second contact person. We will use this phone number for a follow up call if the main contact is not available.

", + "schema": {} + }, { "name": "AltContactName", "options": { @@ -1079,13 +1105,13 @@ }, { "path": "/summaryPage", - "title": "Check your answers before submitting your report", + "title": "Check your answers before sending your report", "components": [ { "name": "nMOTrx", "options": {}, "type": "Para", - "content": "

Setting details

Your setting nameBelmont Care HomeChange
Your setting postcodeTQ5 0AHChange
Your local UKHSA health protection teamSouth West Health Protection TeamChange
Your Care Quality Commission (CQC) location ID000001888Change
Type of adult social care you provideResidential care homeChange

Contact details

Full name of contact personPat DeerfieldChange
Job title of contact personManagerChange
Telephone number07451300300Change
Email addressPat@cov.comChange

Infections you are reporting

Acute respiratory infections you are reportingFluChange
Number of cases of Flu you are reporting2 or moreChange
Symptoms in 2 or more cases of Flu started within 5 days of each otherYesChange
You think the cases of Flu could be linked by spread in your settingYesChange
At least one case of Flu has been confirmed by a positive testYesChange

Service users and staff

How would you describe the majority of your service usersService users, staffChange
Number of people that currently live in your setting or use your service27Change
Number of staff that work in your care setting or service7Change
Number of empty beds (optional)3Change

Flu in your setting

You are reporting cases or symptoms of Flu in service users or staff2Change
Number of service users who have Flu confirmed by a test5Change
Number of service users who have symptoms of an acute respiratory infection, but have not been tested for Flu5Change
Number of staff members who have Flu confirmed by a test1Change
Number of staff who have symptoms of an acute respiratory infection, but have not been tested for Flu2Change
Date symptoms started in the first case of Flu02 August 2024Change
Date symptoms started in the second case of Flu (optional)N/AChange
Date symptoms started in the most recent case of Flu10 August 2024Change

Vaccination among your staff and service users

Number of service users who have had the flu vaccine for this current winter season (optional)20Change
Number of staff who have had the flu vaccine for this current winter season (optional)6Change

Infection prevention and control (IPC) and outbreak management in your setting

How often are you monitoring staff IPC practicesWithin the last monthChange
Issues you are currently experiencing and need support withTest kit supplyChange
Your setting undertakes aerosol generating procedures (AGPs)YesChange
Staff carrying out aerosol generating procedures, wear fit-tested and FFP3 masksAllChange

Staffing

You use agency staff or share staff with other care settingsYesChange
Number of additional agency staff or staff shared with settings you have used during this outbreakFewer than 5Change
Your responses must be shared with your local Health Protection team and Local Authority infection control team and they will use them to help you to manage your situation.
", + "content": "

Setting details

Your setting nameBelmont Care HomeChange
Your setting postcodeTQ5 0AHChange
Your local UKHSA health protection teamSouth West Health Protection TeamChange
Your Care Quality Commission (CQC) location ID000001888Change
Type of adult social care you provideResidential care homeChange

Contact details

Full name of contact personPat DeerfieldChange
Job title of contact personManagerChange
Telephone number07451300300Change
Email addressPat@cov.comChange

Infections you are reporting

Acute respiratory infections you are reportingFluChange
Number of cases of Flu you are reporting2 or moreChange
Symptoms in 2 or more cases of Flu started within 5 days of each otherYesChange
You think the cases of Flu could be linked by spread in your settingYesChange
At least one case of Flu has been confirmed by a positive testYesChange

Service users and staff

How would you describe the majority of your service usersService users, staffChange
Number of people that currently live in your setting or use your service27Change
Number of staff that work in your care setting or service7Change
Number of empty beds (optional)3Change

Flu in your setting

You are reporting cases or symptoms of Flu in service users or staff2Change
Number of service users who have Flu confirmed by a test5Change
Number of service users who have symptoms of an acute respiratory infection, but have not been tested for Flu5Change
Number of staff members who have Flu confirmed by a test1Change
Number of staff who have symptoms of an acute respiratory infection, but have not been tested for Flu2Change
Date symptoms started in the first case of Flu02 August 2024Change
Date symptoms started in the second case of Flu (optional)N/AChange
Date symptoms started in the most recent case of Flu10 August 2024Change

Vaccination among your staff and service users

Number of service users who have had the flu vaccine for this current winter season (optional)20Change
Number of staff who have had the flu vaccine for this current winter season (optional)6Change

Infection prevention and control (IPC) and outbreak management in your setting

How often are you monitoring staff IPC practicesWithin the last monthChange
Issues you are currently experiencing and need support withTest kit supplyChange
Your setting undertakes aerosol generating procedures (AGPs)YesChange
Staff carrying out aerosol generating procedures, wear fit-tested and FFP3 masksAllChange

Staffing

You use agency staff or share staff with other care settingsYesChange
Number of additional agency staff or staff shared with settings you have used during this outbreakFewer than 5Change

Now send your report

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth.

", "schema": {} } ], From 48e9b77b99f5032889a580e1cc534d541569a58d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 9 Dec 2024 09:50:11 +0000 Subject: [PATCH 004/403] add postcode link --- runner/src/server/forms/ReportAnOutbreak.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d2a5f9fa9a..de9f673030 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -913,6 +913,13 @@ "type": "listRef" } }, + { + "name": "nMOTry", + "options": {}, + "type": "Para", + "content": "\n Use your postcode to find your local health protection team (opens in a new tab)\n", + "schema": {} + }, { "name": "CQCRegistered", "options": {}, From 39b685d51102c0624fc739fed865065c4c60ef1a Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 9 Dec 2024 11:44:55 +0000 Subject: [PATCH 005/403] update hint text postcode --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index de9f673030..75a5d4db1a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -890,7 +890,7 @@ "type": "TextField", "nameHasError": false, "title": "Your setting postcode", - "hint": "The postcode of the setting where the cases are located, not the management company", + "hint": "The postcode of the setting where the cases are located, not the management company. If you provide domiciliary or home care, give the postcode of the care provider company", "values": { "type": "listRef" } From 3a02fa1bee5b1c963b96bc4db825266c064976fc Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:45:29 +0000 Subject: [PATCH 006/403] update condition names --- runner/src/server/forms/ReportAnOutbreak.json | 36 +++++++++---------- runner/src/server/views/500.html | 4 +-- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 75a5d4db1a..d68fdf784c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -10,15 +10,13 @@ "name": "nMOTrx", "options": {}, "type": "Para", - "content": "

Applies to England

\n", - "schema": {} + "content": "

Applies to England

\n" }, { "name": "nMOTry", "options": {}, "type": "Para", - "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), or unknown respiratory infection including chest infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n \n\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak or cluster of ARI that you've already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Do not use this service to report:

\n \n

Read more on:

\n \n

Why you should report an outbreak

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team during working hours.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n", - "schema": {} + "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), or unknown respiratory infection including chest infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n \n\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak or cluster of ARI that you've already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Do not use this service to report:

\n \n

Read more on:

\n \n

Why you should report an outbreak

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team during working hours.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" } ], "next": [ @@ -72,7 +70,7 @@ "next": [ { "path": "/2-or-more-ari", - "condition": "sUrRwU" + "condition": "PositiveARI:No" }, { "path": "/which-ari" @@ -99,11 +97,11 @@ "next": [ { "path": "/check-answers", - "condition": "einiQH" + "condition": "WhichARI:FLU" }, { "path": "/2-or-more-cases-not-covid-or-flu", - "condition": "fknfQQQ" + "condition": "WhichARI:OTHER" }, { "path": "/2-or-more-covid" @@ -128,7 +126,7 @@ "next": [ { "path": "/do-not-need-to-report", - "condition": "fninfWW" + "condition": "TwoOrMoreCovid:No" }, { "path": "/2-or-more-covid-details" @@ -165,7 +163,7 @@ "next": [ { "path": "/do-not-need-to-report", - "condition": "dmdojqQH" + "condition": "ReportCovid:No" }, { "path": "/check-answers" @@ -190,7 +188,7 @@ "next": [ { "path": "/do-not-need-to-report", - "condition": "yowninW" + "condition": "TwoOrMoreARI:No" }, { "path": "/check-answers" @@ -237,7 +235,7 @@ "next": [ { "path": "/do-not-need-to-report", - "condition": "yowninW" + "condition": "TwoOrMoreARI:No" }, { "path": "/ari-infection-type" @@ -263,7 +261,7 @@ "next": [ { "path": "/do-not-need-to-report", - "condition": "yowninW" + "condition": "TwoOrMoreARI:No" }, { "path": "/check-answers" @@ -1503,7 +1501,7 @@ "conditions": [ { "displayName": "PositiveARI:No", - "name": "sUrRwU", + "name": "PositiveARI:No", "value": { "name": "PositiveARI:No", "conditions": [ @@ -1525,7 +1523,7 @@ }, { "displayName": "TwoOrMoreARI:No", - "name": "yowninW", + "name": "TwoOrMoreARI:No", "value": { "name": "TwoOrMoreARI:No", "conditions": [ @@ -1547,7 +1545,7 @@ }, { "displayName": "TwoOrMoreCovid:No", - "name": "fninfWW", + "name": "TwoOrMoreCovid:No", "value": { "name": "TwoOrMoreCovid:No", "conditions": [ @@ -1569,7 +1567,7 @@ }, { "displayName": "WhichARI:FLU", - "name": "einiQH", + "name": "WhichARI:FLU", "value": { "name": "WhichARI:FLU", "conditions": [ @@ -1591,7 +1589,7 @@ }, { "displayName": "WhichARI:OTHER", - "name": "fknfQQQ", + "name": "WhichARI:OTHER", "value": { "name": "WhichARI:OTHER", "conditions": [ @@ -1613,7 +1611,7 @@ }, { "displayName": "ReportCovid:No", - "name": "dmdojqQH", + "name": "ReportCovid:No", "value": { "name": "ReportCovid:No", "conditions": [ @@ -1649,7 +1647,7 @@ }, { "displayName": "TwoOrMoreCasesNotCovidFlu:NO", - "name": "fwnsinQ", + "name": "TwoOrMoreCasesNotCovidFlu:NO", "value": { "name": "TwoOrMoreCasesNotCovidFlu:NO", "conditions": [ diff --git a/runner/src/server/views/500.html b/runner/src/server/views/500.html index d57926c5c2..7ce1c50906 100755 --- a/runner/src/server/views/500.html +++ b/runner/src/server/views/500.html @@ -5,8 +5,8 @@
-

Sorry, there is a problem with the service

-

Contact your closest consulate.

+

Sorry, there is a problem with Report an outbreak

+

You need to report the outbreak by telephone to your local UKHSA health protection team.

From 544715c3827e5fced4905a5ebddd10ed043262c5 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:12:25 +0000 Subject: [PATCH 007/403] Update question names --- runner/src/server/forms/ReportAnOutbreak.json | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d68fdf784c..65006e3d75 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -32,7 +32,7 @@ "title": "What type of adult social care do you provide?", "components": [ { - "name": "S4Q9", + "name": "CareSettingType", "options": {}, "type": "RadiosField", "nameHasError": false, @@ -432,7 +432,7 @@ "title": "Staff: number of flu or chest infection cases", "components": [ { - "name": "ServiceUsersFluSwabTest", + "name": "StaffFluSwabTest", "options": {}, "type": "NumberField", "schema": { @@ -531,7 +531,7 @@ "title": "Severity of the case of flu", "components": [ { - "name": "FluSeverityCalledGP", + "name": "SingleCaseOfFluSeverityCalledGP", "options": {}, "type": "YesNoField", "nameHasError": false, @@ -541,7 +541,7 @@ } }, { - "name": "FluSeverityHospitalised", + "name": "SingleCaseOfFluSeverityHospitalised", "options": {}, "type": "YesNoField", "nameHasError": false, @@ -551,7 +551,7 @@ } }, { - "name": "FluSeverityDeath", + "name": "SingleCaseOfFluSeverityDeath", "options": {}, "type": "YesNoField", "nameHasError": false, @@ -759,7 +759,7 @@ "title": "Severity of flu or chest infection cases in this outbreak", "components": [ { - "name": "FluSeverityCalledGPMultipleCases", + "name": "SingleCaseOfFluSeverityCalledGPMultipleCases", "options": {}, "type": "RadiosField", "nameHasError": false, @@ -894,7 +894,7 @@ } }, { - "name": "S0Q3", + "name": "HPT", "options": { "required": true, "customValidationMessages": { @@ -1091,7 +1091,7 @@ "list": "ServiceUsersTypes" }, { - "name": "ServiceUsersNumber", + "name": "StaffNumber", "options": {}, "type": "NumberField", "schema": { @@ -1099,7 +1099,19 @@ "max": 200 }, "nameHasError": false, - "title": "How many service users currently live in your care setting or use your service?" + "title": "How many staff currently work in your care setting or service?" + }, + { + "name": "EmptyBeds", + "options": { "required": false }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many empty beds do you have in your care setting?", + "hint": "If you do not know, leave this blank" } ], "next": [ @@ -1110,6 +1122,7 @@ }, { "path": "/summaryPage", + "controller": "./pages/summary.js", "title": "Check your answers before sending your report", "components": [ { @@ -1120,11 +1133,7 @@ "schema": {} } ], - "next": [ - { - "path": "/reportSent" - } - ] + "next": [] }, { "path": "/reportSent", @@ -1815,7 +1824,6 @@ } ], "fees": [], - "outputs": [], "version": 2, "skipSummary": false, "declaration": "
\n

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.
\n

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth

\n\n", From 9505f9102daad494647b115d4a15ae86cf54517b Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 16 Dec 2024 10:16:25 +0000 Subject: [PATCH 008/403] add sections and covid pathway --- runner/src/server/forms/ReportAnOutbreak.json | 376 +++++++++++++++++- 1 file changed, 375 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 65006e3d75..8893c04274 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -30,6 +30,7 @@ { "path": "/setting", "title": "What type of adult social care do you provide?", + "section": "YourSetting", "components": [ { "name": "CareSettingType", @@ -53,6 +54,7 @@ { "path": "/positive-ari", "title": "Do you have any positive test results for an acute respiratory infection?", + "section": "InfectionsYouAreReporting", "components": [ { "name": "PositiveARI", @@ -80,6 +82,7 @@ { "path": "/which-ari", "title": "Which acute respiratory infections do you have a positive test result for? ", + "section": "InfectionsYouAreReporting", "components": [ { "name": "WhichARI", @@ -111,6 +114,7 @@ { "path": "/2-or-more-covid", "title": "Are you reporting 2 or more cases of COVID-19?", + "section": "InfectionsYouAreReporting", "components": [ { "name": "TwoOrMoreCovid", @@ -136,6 +140,7 @@ { "path": "/2-or-more-covid-details", "title": "COVID-19 in your setting", + "section": "InfectionsYouAreReporting", "components": [ { "name": "TwoOrMoreCovid5days", @@ -158,6 +163,10 @@ "values": { "type": "listRef" } + }, + { + "type": "Para", + "content": "

Read guidance on when cases may be linked by spread in the care setting (opens in a new tab).

" } ], "next": [ @@ -195,14 +204,17 @@ } ] }, + { "path": "/do-not-need-to-report", "title": "You do not need to report", + "section": "InfectionsYouAreReporting", "components": [] }, { "path": "/check-answers", "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", "components": [ { "name": "rofomf", @@ -212,6 +224,10 @@ } ], "next": [ + { + "condition": "WhichARI:COVID-19", + "path": "/covid-cases-setting" + }, { "path": "/cases-of-flu" } @@ -220,6 +236,7 @@ { "path": "/2-or-more-cases-not-covid-or-flu", "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "section": "InfectionYouAreReporting", "components": [ { "name": "TwoOrMoreCasesNotCovidFlu", @@ -227,6 +244,7 @@ "type": "YesNoField", "nameHasError": false, "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "hint": "This includes viruses such as respiratory syncytial virus, rhinovirus, parainfluenza and chest infections", "values": { "type": "listRef" } @@ -245,6 +263,7 @@ { "path": "/ari-infection-type", "title": "What infection are you reporting?", + "section": "InfectionYouAreReporting", "components": [ { "name": "ARIinfectionType", @@ -252,6 +271,7 @@ "type": "CheckboxesField", "nameHasError": false, "title": "What infection are you reporting?", + "hint": "You can select more than one option", "list": "ARIinfectionType", "values": { "type": "listRef" @@ -271,6 +291,7 @@ { "path": "/cases-of-flu", "title": "How many cases of flu are you reporting?", + "section": "InfectionsYouAreReporting", "components": [ { "name": "NumberOfCasesOfFlu", @@ -297,6 +318,7 @@ { "path": "/single-case-of-flu", "title": "Who has the case of flu?", + "section": "FluInYourSetting", "components": [ { "name": "SingleCaseOfFluServiceOrStaff", @@ -323,6 +345,7 @@ { "path": "/multiple-cases-of-flu", "title": "Who are you reporting cases or symptoms of flu in?", + "section": "FluInYourSetting", "components": [ { "name": "MultipleCasesOfFluServiceOrStaff", @@ -349,6 +372,7 @@ { "path": "/multiple-cases-flu-service-users", "title": "Service users: number of flu or chest infection cases", + "section": "FluInYourSetting", "components": [ { "name": "ServiceUsersFluSwabTest", @@ -430,6 +454,7 @@ { "path": "/multiple-cases-flu-staff", "title": "Staff: number of flu or chest infection cases", + "section": "FluAndChestInfectionInYourSetting", "components": [ { "name": "StaffFluSwabTest", @@ -507,6 +532,7 @@ { "path": "/symptom-onset-flu", "title": "Symptom onset for the case of flu", + "section": "FluInYourSetting", "components": [ { "name": "FluSymptomOnsetDate", @@ -529,6 +555,7 @@ { "path": "/flu-severity", "title": "Severity of the case of flu", + "section": "FluInYourSetting", "components": [ { "name": "SingleCaseOfFluSeverityCalledGP", @@ -570,6 +597,7 @@ { "path": "/vaccination", "title": "Vaccination among your staff and service users", + "section": "Vaccination", "components": [ { "name": "ServiceUsersCovid19Vaccination", @@ -661,6 +689,7 @@ { "path": "/ipc", "title": "Infection prevention and control (IPC) and outbreak management in your setting", + "section": "InfectionPreventionAndControl", "components": [ { "name": "IPCPractices", @@ -798,9 +827,226 @@ } ] }, + { + "path": "/covid-cases-setting", + "title": "Who are you reporting cases or symptoms of COVID-19 in?", + "section": "COVID19InYourSetting", + "components": [ + { + "type": "CheckboxesField", + "name": "CovidServiceOrStaff", + "options": {}, + "title": "Who are you reporting cases or symptoms of COVID-19 in?", + "hint": "You can select more than one option", + "list": "ServiceOrStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "condition": "CovidServiceOrStaff:ServiceUsers", + "path": "/service-users-covid-cases" + }, + { + "condition": "CovidServiceOrStaff:Staff", + "path": "/staff-covid-cases" + } + ] + }, + { + "path": "/service-users-covid-cases", + "title": "Service users: number of cases", + "section": "COVID19InYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out\nIf none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital or on visits out\nIf none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + } + ], + "next": [ + { + "condition": "CovidServiceOrStaff:Staff", + "path": "/staff-covid-cases" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/severity-of-illness", + "title": "Severity of illness in this outbreak", + "section": "SeverityOfIllness", + "components": [ + { + "name": "severityIntro", + "type": "Para", + "content": "Include confirmed cases and people with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "SeverityGPCalls", + "type": "RadiosField", + "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityHospitalisations", + "type": "RadiosField", + "title": "How many people have been hospitalised because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityDeaths", + "type": "RadiosField", + "title": "How many people have died because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "MediaInterest", + "type": "YesNoField", + "title": "Are you aware of any media interest in this outbreak?", + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/symptom-onset" + } + ] + }, + { + "path": "/symptom-onset", + "title": "Symptom onset in this outbreak", + "section": "SymptomStartDates", + "components": [ + { + "name": "introText1", + "type": "Para", + "content": "Include confirmed cases and people with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "introText2", + "type": "Para", + "content": "If you do not know the exact date, give an estimate.", + "options": {} + }, + { + "name": "FirstCaseOnset", + "type": "DatePartsField", + "title": "When did symptoms start in the first case in this outbreak?", + "hint": "For example, 31 03 2024", + "options": { + "required": true + } + }, + { + "name": "SecondCaseOnset", + "type": "DatePartsField", + "title": "When did symptoms start in the second case in this outbreak?", + "hint": "For example, 31 03 2024", + "options": { + "required": true + } + }, + { + "name": "MostRecentCaseOnset", + "type": "DatePartsField", + "title": "When did symptoms start in the most recent case in this outbreak? (if you have 3 or more cases)", + "hint": "For example, 31 03 2024", + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/vaccination" + } + ] + }, + { + "path": "/staff-covid-cases", + "title": "Staff: number of cases", + "section": "COVID19InYourSetting", + "components": [ + { + "type": "Para", + "content": "Staff includes anyone who is patient facing." + }, + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "symptomsStaff", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, { "path": "/agps", "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "section": "InfectionPreventionAndControl", "components": [ { "name": "FFP3Masks", @@ -823,6 +1069,7 @@ { "path": "/agency-staff", "title": "Do you use agency staff or share staff with other care settings?", + "section": "Staff", "components": [ { "name": "AgencyStaff", @@ -848,6 +1095,7 @@ { "path": "/additional-staff", "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "section": "Staff", "components": [ { "name": "AdditionalStaff", @@ -870,6 +1118,7 @@ { "path": "/setting-details", "title": "Setting details", + "section": "SettingDetails", "components": [ { "name": "SettingName", @@ -945,6 +1194,7 @@ { "path": "/contact-details", "title": "Contact details", + "section": "Your setting", "components": [ { "name": "heading1", @@ -1066,6 +1316,7 @@ { "path": "/service-users", "title": "Service users and staff", + "section": "PeopleInYourSetting", "components": [ { "name": "ServiceUsersTypes", @@ -1506,7 +1757,64 @@ ] } ], - "sections": [], + "sections": [ + { + "name": "InfectionYouAreReporting", + "title": "Infection you are reporting" + }, + { + "name": "InfectionsYouAreReporting", + "title": "Infections you are reporting" + }, + { + "name": "FluInYourSetting", + "title": "Flu in your setting" + }, + { + "name": "COVID19InYourSetting", + "title": "COVID-19 in your setting" + }, + { + "name": "SeverityOfIllness", + "title": "Severity of illness" + }, + { + "name": "SymptomStartDates", + "title": "Symptom start dates" + }, + { + "name": "Vaccination", + "title": "Vaccination" + }, + { + "name": "Summary", + "title": "Summary" + }, + { + "name": "SettingDetails", + "title": "Setting details" + }, + { + "name": "PeopleInYourSetting", + "title": "People in your setting" + }, + { + "name": "YourSetting", + "title": "Your setting" + }, + { + "name": "FluAndChestInfectionInYourSetting", + "title": "Flu and chest infection in your setting" + }, + { + "name": "InfectionPreventionAndControl", + "title": "Infection prevention and control" + }, + { + "name": "Staff", + "title": "Staff" + } + ], "conditions": [ { "displayName": "PositiveARI:No", @@ -1596,6 +1904,28 @@ ] } }, + { + "displayName": "WhichARI:COVID-19", + "name": "WhichARI:COVID-19", + "value": { + "name": "WhichARI:COVID-19", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "Flu" + } + } + ] + } + }, { "displayName": "WhichARI:OTHER", "name": "WhichARI:OTHER", @@ -1778,6 +2108,50 @@ ] } }, + { + "displayName": "CovidServiceOrStaff:ServiceUsers", + "name": "CovidServiceOrStaff:ServiceUsers", + "value": { + "name": "CovidServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "CovidServiceOrStaff:Staff", + "name": "CovidServiceOrStaff:Staff", + "value": { + "name": "CovidServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "AGPs:yes", "name": "AGPs:yes", From f27a83430a4887519040434c5cab2e06d2745748 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 16 Dec 2024 10:17:52 +0000 Subject: [PATCH 009/403] adjust component names --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8893c04274..b4e9047ae4 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1026,7 +1026,7 @@ }, { "type": "NumberField", - "name": "symptomsStaff", + "name": "StaffSymptomsNotTested", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", "hint": "Include those who are currently in hospital
If none, enter 0", "options": { From f1df36f518441fe73c1770c488cd57f1bc2e5411 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:46:57 +0000 Subject: [PATCH 010/403] add other ari - other pathway --- runner/src/server/forms/ReportAnOutbreak.json | 342 +++++++++++++++--- 1 file changed, 284 insertions(+), 58 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b4e9047ae4..790fdef499 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -98,17 +98,9 @@ } ], "next": [ - { - "path": "/check-answers", - "condition": "WhichARI:FLU" - }, - { - "path": "/2-or-more-cases-not-covid-or-flu", - "condition": "WhichARI:OTHER" - }, - { - "path": "/2-or-more-covid" - } + { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, + { "path": "/check-answers", "condition": "WhichARI:FLU" }, + { "path": "/2-or-more-cases-not-covid-or-flu" } ] }, { @@ -224,10 +216,6 @@ } ], "next": [ - { - "condition": "WhichARI:COVID-19", - "path": "/covid-cases-setting" - }, { "path": "/cases-of-flu" } @@ -252,8 +240,8 @@ ], "next": [ { - "path": "/do-not-need-to-report", - "condition": "TwoOrMoreARI:No" + "condition": "TwoOrMoreCasesNotCovidFlu:No", + "path": "/do-not-need-to-report" }, { "path": "/ari-infection-type" @@ -266,13 +254,13 @@ "section": "InfectionYouAreReporting", "components": [ { - "name": "ARIinfectionType", + "name": "ARIInfectionType", "options": {}, "type": "CheckboxesField", "nameHasError": false, "title": "What infection are you reporting?", "hint": "You can select more than one option", - "list": "ARIinfectionType", + "list": "ARIInfectionType", "values": { "type": "listRef" } @@ -280,11 +268,7 @@ ], "next": [ { - "path": "/do-not-need-to-report", - "condition": "TwoOrMoreARI:No" - }, - { - "path": "/check-answers" + "path": "/ari-cases-setting" } ] }, @@ -686,6 +670,124 @@ } ] }, + { + "path": "/ari-cases-setting", + "title": "Who are you reporting cases or symptoms of an acute respiratory infection in?", + "section": "InfectionYouAreReporting", + "components": [ + { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "title": "Who are you reporting cases or symptoms of an acute respiratory infection in?", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "required": true + } + } + ], + "next": [ + { + "condition": "ARIServiceOrStaff:Both", + "path": "/ari-cases" + }, + { + "condition": "ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-ari-cases" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/service-users-ari-cases", + "title": "Number of suspected acute respiratory infection cases", + "section": "ConfirmedOrUnknownARI", + "components": [ + { + "name": "ServiceUsersARISymptoms", + "type": "NumberField", + "title": "Number of suspected acute respiratory infection cases", + "hint": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", + "options": { + "required": true + }, + "schema": { + "min": 0, + "max": 200 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-cases", + "title": "Number of suspected acute respiratory infection cases", + "section": "ConfirmedOrUnknownARI", + "components": [ + { + "name": "StaffARISymptoms", + "type": "NumberField", + "title": "Number of suspected acute respiratory infection cases", + "hint": "How many staff have symptoms of an acute respiratory infection but have not tested positive?", + "options": { + "required": true + }, + "schema": { + "min": 0, + "max": 200 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/ari-cases", + "title": "Number of suspected acute respiratory infection cases", + "section": "ConfirmedOrUnknownARI", + "components": [ + { + "name": "ServiceUsersARISymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", + "hint": "If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "StaffARISymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection but have not tested positive?", + "hint": "If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0, + "max": 200 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, { "path": "/ipc", "title": "Infection prevention and control (IPC) and outbreak management in your setting", @@ -852,6 +954,10 @@ { "condition": "CovidServiceOrStaff:Staff", "path": "/staff-covid-cases" + }, + { + "condition": "CovidServiceOrStaff:Both", + "path": "/service-users-covid-cases" } ] }, @@ -1039,7 +1145,7 @@ ], "next": [ { - "path": "/summary" + "path": "/severity-of-illness" } ] }, @@ -1118,7 +1224,7 @@ { "path": "/setting-details", "title": "Setting details", - "section": "SettingDetails", + "section": "YourSetting", "components": [ { "name": "SettingName", @@ -1194,7 +1300,7 @@ { "path": "/contact-details", "title": "Contact details", - "section": "Your setting", + "section": "YourSetting", "components": [ { "name": "heading1", @@ -1367,12 +1473,12 @@ ], "next": [ { - "path": "/summaryPage" + "path": "/summary" } ] }, { - "path": "/summaryPage", + "path": "/summary", "controller": "./pages/summary.js", "title": "Check your answers before sending your report", "components": [ @@ -1427,7 +1533,7 @@ "items": [ { "text": "COVID-19", - "value": "COVID-19" + "value": "COVID19" }, { "text": "Flu", @@ -1442,7 +1548,7 @@ }, { "title": "ari-infection-types", - "name": "ARIinfectionType", + "name": "ARIInfectionType", "type": "string", "items": [ { @@ -1813,6 +1919,10 @@ { "name": "Staff", "title": "Staff" + }, + { + "name": "ConfirmedOrUnknownARI", + "title": "Confirmed or unknown acute respiratory infection" } ], "conditions": [ @@ -1905,10 +2015,10 @@ } }, { - "displayName": "WhichARI:COVID-19", - "name": "WhichARI:COVID-19", + "displayName": "WhichARI:COVID19", + "name": "WhichARI:COVID19", "value": { - "name": "WhichARI:COVID-19", + "name": "WhichARI:COVID19", "conditions": [ { "field": { @@ -1920,29 +2030,7 @@ "value": { "type": "Value", "value": "COVID-19", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:OTHER", - "name": "WhichARI:OTHER", - "value": { - "name": "WhichARI:OTHER", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "display": "COVID-19" } } ] @@ -1992,7 +2080,7 @@ "conditions": [ { "field": { - "name": "WhichARI", + "name": "TwoOrMoreCasesNotCovidFlu", "type": "YesNoField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, @@ -2152,6 +2240,144 @@ ] } }, + { + "displayName": "CovidServiceOrStaff:Both", + "name": "CovidServiceOrStaff:Both", + "value": { + "name": "CovidServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Other", + "name": "ARIInfectionType:Other", + "value": { + "name": "ARIInfectionType:Other", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Other acute respiratory infection", + "display": "Other acute respiratory infection" + } + } + ] + } + }, + { + "displayName": "ARIServiceOrStaff:ServiceUsers", + "name": "ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIServiceOrStaff:Staff", + "name": "ARIServiceOrStaff:Staff", + "value": { + "name": "ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIServiceOrStaff:Both", + "name": "ARIServiceOrStaff:Both", + "value": { + "name": "ARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "AGPs:yes", "name": "AGPs:yes", From a8f9dadbb4e11997eddd8cf7ad0c81af24ebdc56 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:58:40 +0000 Subject: [PATCH 011/403] Add adenovirus pathway --- runner/lighthouse.js | 2 + runner/src/server/forms/ReportAnOutbreak.json | 364 +++++++++++++++++- .../src/server/forms/ReportAnOutbreak2.json | 97 +++++ 3 files changed, 454 insertions(+), 9 deletions(-) create mode 100644 runner/src/server/forms/ReportAnOutbreak2.json diff --git a/runner/lighthouse.js b/runner/lighthouse.js index c2cee6699f..1bdffa649b 100644 --- a/runner/lighthouse.js +++ b/runner/lighthouse.js @@ -40,6 +40,8 @@ Object.keys(requiredScores).forEach((category) => { }); console.log(ciStdout.join("\n")); +console.log("Field value:", formData.PositiveARI); +console.log("Condition check:", formData.PositiveARI === true); if (!success) { process.exit(1); diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 790fdef499..3b51d33975 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -240,7 +240,7 @@ ], "next": [ { - "condition": "TwoOrMoreCasesNotCovidFlu:No", + "condition": "TwoOrMoreCasesNotCovidFlu:NO", "path": "/do-not-need-to-report" }, { @@ -268,7 +268,239 @@ ], "next": [ { - "path": "/ari-cases-setting" + "path": "/ari-cases-setting-adenovirus", + "condition": "ARIInfectionType:Adenovirus" + }, + { + "path": "/ari-cases-setting", + "condition": "ARIInfectionType:Other" + }, + { + "path": "/summary" + } + ] + }, + { + "path": "/ari-cases-setting-adenovirus", + "title": "Who are you reporting cases or symptoms of adenovirus in?", + "section": "AdenovirusInYourSetting", + "components": [ + { + "name": "AdenovirusServiceStaff", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Who are you reporting cases or symptoms of adenovirus in?", + "hint": "You can select more than one option", + "list": "ServiceOrStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/service-users-adenovirus", + "condition": "AdenovirusServiceStaff:ServiceUsers" + }, + { + "path": "/staff-adenovirus", + "condition": "AdenovirusServiceStaff:Staff" + } + ] + }, + { + "path": "/service-users-adenovirus", + "title": "Service users: number of adenovirus cases", + "section": "AdenovirusInYourSetting", + "components": [ + { + "name": "ServiceUsersConfirmedAdenovirus", + "type": "NumberField", + "title": "How many symptomatic service users have tested positive for adenovirus in your setting? (confirmed cases)", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersSuspectedAdenovirus", + "type": "NumberField", + "title": "How many service users have similar symptoms but have not tested positive? (suspected cases)", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many symptomatic service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersPositiveCovid", + "type": "NumberField", + "title": "Of the symptomatic service users tested for COVID-19, how many had a positive result?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many symptomatic service users have been tested for flu?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersPositiveFlu", + "type": "NumberField", + "title": "Of the symptomatic service users tested for flu, how many had a positive result?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-adenovirus", + "condition": "AdenovirusServiceStaff:Both" + }, + { + "path": "/severity-adenovirus" + } + ] + }, + { + "path": "/staff-adenovirus", + "title": "Staff: number of adenovirus cases", + "section": "AdenovirusInYourSetting", + "components": [ + { + "name": "StaffConfirmedAdenovirus", + "type": "NumberField", + "title": "How many symptomatic staff have tested positive with this ARI in your setting? (confirmed cases)", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffSuspectedAdenovirus", + "type": "NumberField", + "title": "How many staff have similar symptoms but have not tested positive for an ARI? (suspected cases)", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTestedCovid", + "type": "NumberField", + "title": "How many symptomatic staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffPositiveCovid", + "type": "NumberField", + "title": "Of the symptomatic staff tested for COVID-19, how many had a positive result?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTestedFlu", + "type": "NumberField", + "title": "How many symptomatic staff have been tested for flu?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffPositiveFlu", + "type": "NumberField", + "title": "Of the symptomatic staff tested for flu, how many had a positive result?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-adenovirus" + } + ] + }, + { + "path": "/severity-adenovirus", + "title": "Severity of adenovirus cases in this outbreak", + "section": "AdenovirusInYourSetting", + "components": [ + { + "name": "CasesCalledGP", + "type": "RadiosField", + "title": "How many cases of ARI have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "schema": {}, + "options": {} + }, + { + "name": "CasesGivenAntibiotics", + "type": "NumberField", + "title": "How many service users or staff have been given antibiotics for their respiratory symptoms? (optional)", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": {} + }, + { + "name": "CasesHospitalised", + "type": "RadiosField", + "title": "How many service users or staff have been hospitalised because of this ARI in this outbreak?", + "list": "CaseNumbers", + "schema": {}, + "options": {} + }, + { + "name": "CasesDeaths", + "type": "RadiosField", + "title": "How many service users or staff have died because of this ARI during this outbreak?", + "list": "CaseNumbers", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "path": "/symptom-onset" } ] }, @@ -696,7 +928,11 @@ "path": "/service-users-ari-cases" }, { + "condition": "ARIServiceOrStaff:Staff", "path": "/staff-ari-cases" + }, + { + "path": "/summary" } ] }, @@ -1490,7 +1726,11 @@ "schema": {} } ], - "next": [] + "next": [ + { + "path": "/reportSent" + } + ] }, { "path": "/reportSent", @@ -1533,7 +1773,7 @@ "items": [ { "text": "COVID-19", - "value": "COVID19" + "value": "COVID-19" }, { "text": "Flu", @@ -1573,7 +1813,7 @@ }, { "text": "Other acute respiratory infection", - "value": "Other acute respiratory infection" + "value": "Other" } ] }, @@ -1923,6 +2163,10 @@ { "name": "ConfirmedOrUnknownARI", "title": "Confirmed or unknown acute respiratory infection" + }, + { + "name": "AdenovirusInYourSetting", + "title": "Adenovirus in your setting" } ], "conditions": [ @@ -1934,7 +2178,7 @@ "conditions": [ { "field": { - "name": "PositiveARI", + "name": "InfectionsYouAreReporting.PositiveARI", "type": "YesNoField", "display": "Do you have any positive test results for an acute respiratory infection?" }, @@ -2087,8 +2331,8 @@ "operator": "is", "value": { "type": "Value", - "value": "true", - "display": "true" + "value": "false", + "display": "false" } } ] @@ -2291,13 +2535,35 @@ "operator": "contains", "value": { "type": "Value", - "value": "Other acute respiratory infection", + "value": "Other", "display": "Other acute respiratory infection" } } ] } }, + { + "displayName": "ARIInfectionType:Adenovirus", + "name": "ARIInfectionType:Adenovirus", + "value": { + "name": "ARIInfectionType:Adenovirus", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Adenovirus", + "display": "Adenovirus" + } + } + ] + } + }, { "displayName": "ARIServiceOrStaff:ServiceUsers", "name": "ARIServiceOrStaff:ServiceUsers", @@ -2378,6 +2644,86 @@ ] } }, + { + "displayName": "AdenovirusServiceStaff:Both", + "name": "AdenovirusServiceStaff:Both", + "value": { + "name": "AdenovirusServiceStaff:Both", + "conditions": [ + { + "field": { + "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases of adenovirus in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service user", + "display": "Service user" + } + }, + { + "coordinator": "and", + "field": { + "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases of adenovirus in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "AdenovirusServiceStaff:ServiceUsers", + "name": "AdenovirusServiceStaff:ServiceUsers", + "value": { + "name": "AdenovirusServiceStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases of adenovirus in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service user", + "display": "Service user" + } + } + ] + } + }, + { + "displayName": "AdenovirusServiceStaff:Staff", + "name": "AdenovirusServiceStaff:Staff", + "value": { + "name": "AdenovirusServiceStaff:Staff", + "conditions": [ + { + "field": { + "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases of adenovirus in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "AGPs:yes", "name": "AGPs:yes", diff --git a/runner/src/server/forms/ReportAnOutbreak2.json b/runner/src/server/forms/ReportAnOutbreak2.json new file mode 100644 index 0000000000..03946a99e6 --- /dev/null +++ b/runner/src/server/forms/ReportAnOutbreak2.json @@ -0,0 +1,97 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "path": "/start", + "title": "Report an outbreak of acute respiratory infection in an adult social care setting", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Applies to England

\n" + } + ], + "next": [ + { + "path": "/positive-ari" + } + ] + }, + { + "path": "/positive-ari", + "title": "Do you have any positive test results for an acute respiratory infection?", + "section": "InfectionsYouAreReporting", + "components": [ + { + "name": "PositiveARI", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Do you have any positive test results for an acute respiratory infection?", + "hint": "Acute respiratory infections include COVID-19, flu, respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/which-ari", + "condition": "PositiveARI:true" + }, + { + "path": "/2-or-more-ari" + } + ] + }, + { + "path": "/2-or-more-ari", + "title": "2 or more ARI", + "components": [] + }, + { + "path": "/which-ari", + "title": "Which ARI", + "components": [] + } + ], + "conditions": [ + { + "displayName": "PositiveARI:true", + "name": "PositiveARI:true", + "value": { + "name": "PositiveARI:true", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.PositiveARI", + "type": "YesNoField", + "display": "Do you have any positive test results for an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + } + ] + } + } + ], + "lists": [], + "sections": [ + { + "name": "InfectionsYouAreReporting", + "title": "Infections you are reporting" + } + ], + "fees": [], + "name": "Report an outbreak", + "declaration": "", + "skipSummary": false, + "version": 2 +} From cba20564fe379de0ad97e35ebbb2c6d89a138eac Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:59:57 +0000 Subject: [PATCH 012/403] remove test form --- .../src/server/forms/ReportAnOutbreak2.json | 97 ------------------- 1 file changed, 97 deletions(-) delete mode 100644 runner/src/server/forms/ReportAnOutbreak2.json diff --git a/runner/src/server/forms/ReportAnOutbreak2.json b/runner/src/server/forms/ReportAnOutbreak2.json deleted file mode 100644 index 03946a99e6..0000000000 --- a/runner/src/server/forms/ReportAnOutbreak2.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "metadata": {}, - "startPage": "/start", - "pages": [ - { - "path": "/start", - "title": "Report an outbreak of acute respiratory infection in an adult social care setting", - "components": [ - { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

Applies to England

\n" - } - ], - "next": [ - { - "path": "/positive-ari" - } - ] - }, - { - "path": "/positive-ari", - "title": "Do you have any positive test results for an acute respiratory infection?", - "section": "InfectionsYouAreReporting", - "components": [ - { - "name": "PositiveARI", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Do you have any positive test results for an acute respiratory infection?", - "hint": "Acute respiratory infections include COVID-19, flu, respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus", - "schema": {}, - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/which-ari", - "condition": "PositiveARI:true" - }, - { - "path": "/2-or-more-ari" - } - ] - }, - { - "path": "/2-or-more-ari", - "title": "2 or more ARI", - "components": [] - }, - { - "path": "/which-ari", - "title": "Which ARI", - "components": [] - } - ], - "conditions": [ - { - "displayName": "PositiveARI:true", - "name": "PositiveARI:true", - "value": { - "name": "PositiveARI:true", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.PositiveARI", - "type": "YesNoField", - "display": "Do you have any positive test results for an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "true", - "display": "true" - } - } - ] - } - } - ], - "lists": [], - "sections": [ - { - "name": "InfectionsYouAreReporting", - "title": "Infections you are reporting" - } - ], - "fees": [], - "name": "Report an outbreak", - "declaration": "", - "skipSummary": false, - "version": 2 -} From 70fde0dfeaab9641cc6e015b7e96c1f6d5d72296 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:44:01 +0000 Subject: [PATCH 013/403] routing progress --- runner/src/server/forms/ReportAnOutbreak.json | 173 +++++++++++++++--- 1 file changed, 146 insertions(+), 27 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 3b51d33975..ee78a3202b 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -216,6 +216,10 @@ } ], "next": [ + { + "path": "/covid-cases-setting", + "condition": "WhichARI:COVID19" + }, { "path": "/cases-of-flu" } @@ -551,7 +555,7 @@ "next": [ { "path": "/symptom-onset-flu", - "condition": "SingleCaseOfFluServiceUserOrStaff:ServiceUser" + "condition": "SingleCaseOfFluServiceOrStaff:ServiceUser" }, { "path": "/vaccination" @@ -1160,6 +1164,10 @@ } ], "next": [ + { + "path": "/ari-cases-setting", + "condition": "WhichARI:Other" + }, { "path": "/vaccination" } @@ -1176,13 +1184,17 @@ "options": {}, "title": "Who are you reporting cases or symptoms of COVID-19 in?", "hint": "You can select more than one option", - "list": "ServiceOrStaff", + "list": "ServiceOrStaffMultiple", "values": { "type": "listRef" } } ], "next": [ + { + "condition": "CovidServiceOrStaff:Both", + "path": "/service-users-covid-cases" + }, { "condition": "CovidServiceOrStaff:ServiceUsers", "path": "/service-users-covid-cases" @@ -1190,10 +1202,6 @@ { "condition": "CovidServiceOrStaff:Staff", "path": "/staff-covid-cases" - }, - { - "condition": "CovidServiceOrStaff:Both", - "path": "/service-users-covid-cases" } ] }, @@ -1232,6 +1240,14 @@ "condition": "CovidServiceOrStaff:Staff", "path": "/staff-covid-cases" }, + { + "condition": "WhichARI:FLU", + "path": "/cases-of-flu" + }, + { + "condition": "WhichARI:Other", + "path": "/ari-cases-setting" + }, { "path": "/severity-of-illness" } @@ -1380,6 +1396,14 @@ } ], "next": [ + { + "path": "/cases-of-flu", + "condition": "WhichARI:CovidAndFlu" + }, + { + "path": "/ari-cases-setting-adenovirus", + "condition": "WhichARI:Other" + }, { "path": "/severity-of-illness" } @@ -2244,7 +2268,7 @@ "conditions": [ { "field": { - "name": "WhichARI", + "name": "InfectionsYouAreReporting.WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -2266,7 +2290,7 @@ "conditions": [ { "field": { - "name": "WhichARI", + "name": "InfectionsYouAreReporting.WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -2280,6 +2304,101 @@ ] } }, + { + "displayName": "WhichARI:Other", + "name": "WhichARI:Other", + "value": { + "name": "WhichARI:Other", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndFlu", + "name": "WhichARI:CovidAndFlu", + "value": { + "name": "WhichARI:CovidAndFlu", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + + { + "displayName": "WhichARI:CovidAndOther", + "name": "WhichARI:CovidAndOther", + "value": { + "name": "WhichARI:CovidAndOther", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, { "displayName": "ReportCovid:No", "name": "ReportCovid:No", @@ -2339,14 +2458,14 @@ } }, { - "displayName": "SingleCaseOfFluServiceUserOrStaff:ServiceUser", - "name": "SingleCaseOfFluServiceUserOrStaff:ServiceUser", + "displayName": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", "value": { - "name": "SingleCaseOfFluServiceUserOrStaff:ServiceUser", + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", "conditions": [ { "field": { - "name": "SingleCaseOfFluServiceOrStaff", + "name": "FluInYourSetting.SingleCaseOfFluServiceOrStaff", "type": "RadiosField", "display": "Who has the case of flu?" }, @@ -2368,7 +2487,7 @@ "conditions": [ { "field": { - "name": "NumberOfCasesOfFlu", + "name": "InfectionsYouAreReporting.NumberOfCasesOfFlu", "type": "RadiosField", "display": "How many cases of flu are you reporting?" }, @@ -2390,7 +2509,7 @@ "conditions": [ { "field": { - "name": "MultipleCasesOfFluServiceOrStaff", + "name": "FluInYourSetting.MultipleCasesOfFluServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of flu in?" }, @@ -2412,7 +2531,7 @@ "conditions": [ { "field": { - "name": "MultipleCasesOfFluServiceOrStaff", + "name": "FluInYourSetting.MultipleCasesOfFluServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of flu in?" }, @@ -2426,7 +2545,7 @@ { "coordinator": "and", "field": { - "name": "MultipleCasesOfFluServiceOrStaff", + "name": "FluInYourSetting.MultipleCasesOfFluServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of flu in?" }, @@ -2448,7 +2567,7 @@ "conditions": [ { "field": { - "name": "CovidServiceOrStaff", + "name": "COVID19InYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2470,7 +2589,7 @@ "conditions": [ { "field": { - "name": "CovidServiceOrStaff", + "name": "COVID19InYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2492,7 +2611,7 @@ "conditions": [ { "field": { - "name": "CovidServiceOrStaff", + "name": "COVID19InYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2506,7 +2625,7 @@ { "coordinator": "and", "field": { - "name": "CovidServiceOrStaff", + "name": "COVID19InYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2528,7 +2647,7 @@ "conditions": [ { "field": { - "name": "ARIInfectionType", + "name": "InfectionYouAreReporting.ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -2572,7 +2691,7 @@ "conditions": [ { "field": { - "name": "ARIServiceOrStaff", + "name": "InfectionYouAreReporting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2594,7 +2713,7 @@ "conditions": [ { "field": { - "name": "ARIServiceOrStaff", + "name": "InfectionYouAreReporting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2616,7 +2735,7 @@ "conditions": [ { "field": { - "name": "ARIServiceOrStaff", + "name": "InfectionYouAreReporting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2630,7 +2749,7 @@ { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "InfectionYouAreReporting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2732,7 +2851,7 @@ "conditions": [ { "field": { - "name": "AGPs", + "name": "InfectionPreventionAndControl.AGPs", "type": "YesNoField", "display": "Does your setting undertake aerosol generating procedures (AGPs)?" }, @@ -2754,7 +2873,7 @@ "conditions": [ { "field": { - "name": "AgencyStaff", + "name": "Staff.AgencyStaff", "type": "YesNoField", "display": "Do you use agency staff or share staff with other care settings?" }, From 22df69dc2800030cd4f75175e0e61ec21d0cfa15 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 23 Dec 2024 16:58:37 +0000 Subject: [PATCH 014/403] Updated designs progress --- runner/src/server/forms/ReportAnOutbreak.json | 441 +++++++++--------- 1 file changed, 226 insertions(+), 215 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index ee78a3202b..8ae614f02a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -62,7 +62,7 @@ "type": "YesNoField", "nameHasError": false, "title": "Do you have any positive test results for an acute respiratory infection?", - "hint": "Acute respiratory infections include COVID-19, flu, respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus", + "hint": "The infection must have been confirmed by a test, for example a lateral flow test, flu swab test or a laboratory test.", "schema": {}, "values": { "type": "listRef" @@ -81,7 +81,7 @@ }, { "path": "/which-ari", - "title": "Which acute respiratory infections do you have a positive test result for? ", + "title": "Which acute respiratory infections do you have a positive test result for?", "section": "InfectionsYouAreReporting", "components": [ { @@ -99,21 +99,25 @@ ], "next": [ { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, - { "path": "/check-answers", "condition": "WhichARI:FLU" }, + { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, { "path": "/2-or-more-cases-not-covid-or-flu" } ] }, { "path": "/2-or-more-covid", - "title": "Are you reporting 2 or more cases of COVID-19?", + "title": "Are you reporting 2 or more cases?", "section": "InfectionsYouAreReporting", "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, { "name": "TwoOrMoreCovid", "options": {}, "type": "YesNoField", "nameHasError": false, - "title": "Are you reporting 2 or more cases of COVID-19?", + "title": " ", "values": { "type": "listRef" } @@ -131,7 +135,7 @@ }, { "path": "/2-or-more-covid-details", - "title": "COVID-19 in your setting", + "title": "Acute respiratory infections in your setting", "section": "InfectionsYouAreReporting", "components": [ { @@ -139,7 +143,7 @@ "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?", + "title": "Did symptoms in 2 or more cases start within 5 days of each other?", "list": "YesNoSure", "values": { "type": "listRef" @@ -150,7 +154,7 @@ "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​", + "title": "Is it possible that at least 2 of the cases are linked by spread in your setting?​", "list": "YesNoSure", "values": { "type": "listRef" @@ -167,13 +171,14 @@ "condition": "ReportCovid:No" }, { - "path": "/check-answers" + "path": "/covid-cases-setting" } ] }, { "path": "/2-or-more-ari", "title": "Are you reporting 2 or more cases of an acute respiratory infection?", + "section": "InfectionYouAreReporting", "components": [ { "name": "TwoOrMoreARI", @@ -192,7 +197,7 @@ "condition": "TwoOrMoreARI:No" }, { - "path": "/check-answers" + "path": "/ari-cases-setting" } ] }, @@ -203,28 +208,6 @@ "section": "InfectionsYouAreReporting", "components": [] }, - { - "path": "/check-answers", - "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", - "components": [ - { - "name": "rofomf", - "options": {}, - "type": "Para", - "content": "

Acute respiratory infections in your setting

Setting typeResidential care homeChange
Positive test resultYesChange
InfectionFluChange
" - } - ], - "next": [ - { - "path": "/covid-cases-setting", - "condition": "WhichARI:COVID19" - }, - { - "path": "/cases-of-flu" - } - ] - }, { "path": "/2-or-more-cases-not-covid-or-flu", "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", @@ -272,20 +255,12 @@ ], "next": [ { - "path": "/ari-cases-setting-adenovirus", - "condition": "ARIInfectionType:Adenovirus" - }, - { - "path": "/ari-cases-setting", - "condition": "ARIInfectionType:Other" - }, - { - "path": "/summary" + "path": "/ari-cases-setting" } ] }, { - "path": "/ari-cases-setting-adenovirus", + "path": "/ari-cases-setting-known", "title": "Who are you reporting cases or symptoms of adenovirus in?", "section": "AdenovirusInYourSetting", "components": [ @@ -510,15 +485,16 @@ }, { "path": "/cases-of-flu", - "title": "How many cases of flu are you reporting?", - "section": "InfectionsYouAreReporting", + "title": "How many cases are you reporting?", + "section": "InfectionsInYourSetting", "components": [ { "name": "NumberOfCasesOfFlu", "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "How many cases of flu are you reporting?", + "title": "How many cases are you reporting?", + "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", "list": "OneOrMore", "values": { "type": "listRef" @@ -538,7 +514,7 @@ { "path": "/single-case-of-flu", "title": "Who has the case of flu?", - "section": "FluInYourSetting", + "section": "InfectionsInYourSetting", "components": [ { "name": "SingleCaseOfFluServiceOrStaff", @@ -554,7 +530,7 @@ ], "next": [ { - "path": "/symptom-onset-flu", + "path": "/flu-severity", "condition": "SingleCaseOfFluServiceOrStaff:ServiceUser" }, { @@ -564,15 +540,20 @@ }, { "path": "/multiple-cases-of-flu", - "title": "Who are you reporting cases or symptoms of flu in?", - "section": "FluInYourSetting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, { "name": "MultipleCasesOfFluServiceOrStaff", "options": {}, "type": "CheckboxesField", "nameHasError": false, - "title": "Who are you reporting cases or symptoms of flu in?", + "title": " ", + "hint": "You can select more than one option", "list": "ServiceOrStaffMultiple", "values": { "type": "listRef" @@ -591,8 +572,8 @@ }, { "path": "/multiple-cases-flu-service-users", - "title": "Service users: number of flu or chest infection cases", - "section": "FluInYourSetting", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", "components": [ { "name": "ServiceUsersFluSwabTest", @@ -604,7 +585,7 @@ }, "nameHasError": false, "title": "How many service users have flu confirmed by a swab test?", - "hint": "Include those who are currently in hospital. If none, enter 0" + "hint": "Include those who are currently in hospital or on visits out" }, { "name": "ServiceUsersSuspectedFlu", @@ -630,24 +611,16 @@ }, "nameHasError": false, "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Do not include cases you have already reported in this section as having confirmed or suspected flu Include those who are currently in hospital. If none, enter 0" + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "ServiceUsersChestInfectionCovid19", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many of these service users with confirmed or suspected flu or a chest infection have been tested for COVID-19?", - "hint": "If none, enter 0" + "name": "ServiceUsersARISymptomsNotTestedForFlu", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "type": "NumberField" }, { - "name": "ServiceUsersChestInfectionCovid19Positive", + "name": "ServiceUsersChestInfectionCovid19", "options": { "required": false }, @@ -657,7 +630,7 @@ "max": 200 }, "nameHasError": false, - "title": "How many of these service users tested for COVID-19 had a positive result?", + "title": "How many service users have been tested for COVID-19?", "hint": "If none, enter 0" } ], @@ -745,7 +718,7 @@ ], "next": [ { - "path": "/symptom-onset-flu-multiple-cases" + "path": "/severity-of-illness" } ] }, @@ -768,7 +741,7 @@ ], "next": [ { - "path": "/flu-severity" + "path": "/vaccination" } ] }, @@ -810,7 +783,7 @@ ], "next": [ { - "path": "/vaccination" + "path": "/symptom-onset-flu" } ] }, @@ -908,13 +881,17 @@ }, { "path": "/ari-cases-setting", - "title": "Who are you reporting cases or symptoms of an acute respiratory infection in?", - "section": "InfectionYouAreReporting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, { "name": "ARIServiceOrStaff", "type": "CheckboxesField", - "title": "Who are you reporting cases or symptoms of an acute respiratory infection in?", + "title": " ", "hint": "You can select more than one option", "list": "ServiceOrStaffMultiple", "options": { @@ -931,10 +908,6 @@ "condition": "ARIServiceOrStaff:ServiceUsers", "path": "/service-users-ari-cases" }, - { - "condition": "ARIServiceOrStaff:Staff", - "path": "/staff-ari-cases" - }, { "path": "/summary" } @@ -942,14 +915,14 @@ }, { "path": "/service-users-ari-cases", - "title": "Number of suspected acute respiratory infection cases", - "section": "ConfirmedOrUnknownARI", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", "components": [ { "name": "ServiceUsersARISymptoms", "type": "NumberField", - "title": "Number of suspected acute respiratory infection cases", - "hint": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", + "title": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", + "hint": "Include those who are currently in hospital or on visits out.
If none, enter 0", "options": { "required": true }, @@ -957,9 +930,39 @@ "min": 0, "max": 200 } + }, + { + "name": "ServiceUsersTestedCovid19", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } } ], "next": [ + { + "path": "/staff-ari-cases", + "condition": "ARIServiceOrStaff:Both" + }, { "path": "/severity-of-illness" } @@ -967,14 +970,18 @@ }, { "path": "/staff-ari-cases", - "title": "Number of suspected acute respiratory infection cases", - "section": "ConfirmedOrUnknownARI", + "title": "Staff: Number of cases", + "section": "Infections in your setting", "components": [ { - "name": "StaffARISymptoms", + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "name": "OtherARIStaffARISymptoms", "type": "NumberField", - "title": "Number of suspected acute respiratory infection cases", - "hint": "How many staff have symptoms of an acute respiratory infection but have not tested positive?", + "title": "How many staff have symptoms of an acute respiratory infection but have not been tested?", + "hint": "Include those who are currently in hospital
If none, enter 0", "options": { "required": true }, @@ -982,6 +989,32 @@ "min": 0, "max": 200 } + }, + { + "name": "OtherARIStaffTestedCovid", + "type": "NumberField", + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "OtherARIStaffTestedFlu", + "type": "NumberField", + "title": "How many staff have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } } ], "next": [ @@ -991,15 +1024,15 @@ ] }, { - "path": "/ari-cases", - "title": "Number of suspected acute respiratory infection cases", - "section": "ConfirmedOrUnknownARI", + "path": "/service-users-ari-cases-0", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", "components": [ { "name": "ServiceUsersARISymptoms", "type": "NumberField", "title": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", - "hint": "If none, enter 0", + "hint": "Include those who are currently in hospital or on visits out.
If none, enter 0", "options": { "required": true }, @@ -1009,10 +1042,56 @@ } }, { - "name": "StaffARISymptoms", + "name": "ServiceUsersTestedCovid19", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "ServiceUsersTestedFlu", "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection but have not tested positive?", + "title": "How many service users have been tested for flu?", "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + } + ], + "next": [ + { + "path": "/staff-ari-cases-0", + "condition": "ARIServiceOrStaff:Both" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-cases-0", + "title": "Staff: Number of cases", + "section": "Infections in your setting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "name": "OtherARIStaffARISymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection but have not been tested?", + "hint": "Include those who are currently in hospital
If none, enter 0", "options": { "required": true }, @@ -1020,6 +1099,32 @@ "min": 0, "max": 200 } + }, + { + "name": "OtherARIStaffTestedCovid", + "type": "NumberField", + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "OtherARIStaffTestedFlu", + "type": "NumberField", + "title": "How many staff have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } } ], "next": [ @@ -1079,52 +1184,6 @@ } ] }, - { - "path": "/symptom-onset-flu-multiple-cases", - "title": "Symptom onset of flu or chest infection cases in this outbreak", - "components": [ - { - "name": "FluSymptomOnsetDateFirstCase", - "options": {}, - "type": "DatePartsField", - "nameHasError": false, - "title": "When did symptoms start in the first case of confirmed or suspected flu, or chest infection?", - "hint": "For example, 31 03 2024", - "values": { - "type": "listRef" - } - }, - { - "name": "FluSymptomOnsetDateSecondCase", - "options": {}, - "type": "DatePartsField", - "nameHasError": false, - "title": "When did symptoms start in the second case of confirmed or suspected flu, or chest infection?", - "hint": "For example, 31 03 2024", - "values": { - "type": "listRef" - } - }, - { - "name": "FluSymptomOnsetDateMostRecentCase", - "options": { - "required": false - }, - "type": "DatePartsField", - "nameHasError": false, - "title": "When did symptoms start in the most recent case of confirmed or suspected flu or chest infection?", - "hint": "For example, 31 03 2024", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/flu-severity-multiple-cases" - } - ] - }, { "path": "/flu-severity-multiple-cases", "title": "Severity of flu or chest infection cases in this outbreak", @@ -1175,14 +1234,14 @@ }, { "path": "/covid-cases-setting", - "title": "Who are you reporting cases or symptoms of COVID-19 in?", - "section": "COVID19InYourSetting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", "components": [ { "type": "CheckboxesField", "name": "CovidServiceOrStaff", "options": {}, - "title": "Who are you reporting cases or symptoms of COVID-19 in?", + "title": "Who has an acute respiratory infection?", "hint": "You can select more than one option", "list": "ServiceOrStaffMultiple", "values": { @@ -1208,7 +1267,7 @@ { "path": "/service-users-covid-cases", "title": "Service users: number of cases", - "section": "COVID19InYourSetting", + "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -1360,12 +1419,8 @@ { "path": "/staff-covid-cases", "title": "Staff: number of cases", - "section": "COVID19InYourSetting", + "section": "InfectionsInYourSetting", "components": [ - { - "type": "Para", - "content": "Staff includes anyone who is patient facing." - }, { "type": "Para", "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." @@ -2137,12 +2192,8 @@ "title": "Infections you are reporting" }, { - "name": "FluInYourSetting", - "title": "Flu in your setting" - }, - { - "name": "COVID19InYourSetting", - "title": "COVID-19 in your setting" + "name": "InfectionsInYourSetting", + "title": "Infections in your setting" }, { "name": "SeverityOfIllness", @@ -2191,6 +2242,10 @@ { "name": "AdenovirusInYourSetting", "title": "Adenovirus in your setting" + }, + { + "name": "FluInYourSetting", + "title": "Flu in your setting" } ], "conditions": [ @@ -2224,7 +2279,7 @@ "conditions": [ { "field": { - "name": "TwoOrMoreARI", + "name": "InfectionYouAreReporting.TwoOrMoreARI", "type": "YesNoField", "display": "Are you reporting 2 or more cases of an acute respiratory infection?" }, @@ -2246,9 +2301,9 @@ "conditions": [ { "field": { - "name": "TwoOrMoreCovid", + "name": "InfectionsYouAreReporting.TwoOrMoreCovid", "type": "YesNoField", - "display": "Are you reporting 2 or more cases of COVID-19?" + "display": "Are you reporting 2 or more cases?" }, "operator": "is", "value": { @@ -2443,7 +2498,7 @@ "conditions": [ { "field": { - "name": "TwoOrMoreCasesNotCovidFlu", + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", "type": "YesNoField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, @@ -2465,7 +2520,7 @@ "conditions": [ { "field": { - "name": "FluInYourSetting.SingleCaseOfFluServiceOrStaff", + "name": "InfectionsInYourSetting.SingleCaseOfFluServiceOrStaff", "type": "RadiosField", "display": "Who has the case of flu?" }, @@ -2487,7 +2542,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.NumberOfCasesOfFlu", + "name": "InfectionsInYourSetting.NumberOfCasesOfFlu", "type": "RadiosField", "display": "How many cases of flu are you reporting?" }, @@ -2509,7 +2564,7 @@ "conditions": [ { "field": { - "name": "FluInYourSetting.MultipleCasesOfFluServiceOrStaff", + "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of flu in?" }, @@ -2531,7 +2586,7 @@ "conditions": [ { "field": { - "name": "FluInYourSetting.MultipleCasesOfFluServiceOrStaff", + "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of flu in?" }, @@ -2545,7 +2600,7 @@ { "coordinator": "and", "field": { - "name": "FluInYourSetting.MultipleCasesOfFluServiceOrStaff", + "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of flu in?" }, @@ -2567,7 +2622,7 @@ "conditions": [ { "field": { - "name": "COVID19InYourSetting.CovidServiceOrStaff", + "name": "InfectionsInYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2589,7 +2644,7 @@ "conditions": [ { "field": { - "name": "COVID19InYourSetting.CovidServiceOrStaff", + "name": "InfectionsInYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2611,7 +2666,7 @@ "conditions": [ { "field": { - "name": "COVID19InYourSetting.CovidServiceOrStaff", + "name": "InfectionsInYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2625,7 +2680,7 @@ { "coordinator": "and", "field": { - "name": "COVID19InYourSetting.CovidServiceOrStaff", + "name": "InfectionsInYourSetting.CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -2639,50 +2694,6 @@ ] } }, - { - "displayName": "ARIInfectionType:Other", - "name": "ARIInfectionType:Other", - "value": { - "name": "ARIInfectionType:Other", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Other", - "display": "Other acute respiratory infection" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Adenovirus", - "name": "ARIInfectionType:Adenovirus", - "value": { - "name": "ARIInfectionType:Adenovirus", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Adenovirus", - "display": "Adenovirus" - } - } - ] - } - }, { "displayName": "ARIServiceOrStaff:ServiceUsers", "name": "ARIServiceOrStaff:ServiceUsers", @@ -2691,7 +2702,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIServiceOrStaff", + "name": "InfectionsInYourSetting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2713,7 +2724,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIServiceOrStaff", + "name": "InfectionsInYourSetting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2735,7 +2746,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIServiceOrStaff", + "name": "InfectionsInYourSetting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -2749,7 +2760,7 @@ { "coordinator": "and", "field": { - "name": "InfectionYouAreReporting.ARIServiceOrStaff", + "name": "InfectionsInYourSetting.ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, From d82248ccac7b39357869906ef57bb834cde7ac0c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 24 Dec 2024 11:06:31 +0000 Subject: [PATCH 015/403] updated designs further progress --- runner/src/server/forms/ReportAnOutbreak.json | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8ae614f02a..fda05e3aa2 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -98,6 +98,10 @@ } ], "next": [ + { + "path": "/2-or-more-covid-descriptive", + "condition": "WhichARI:COVID19ANDOTHER" + }, { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, { "path": "/2-or-more-cases-not-covid-or-flu" } @@ -133,6 +137,36 @@ } ] }, + { + "path": "/2-or-more-covid-descriptive", + "title": "Are you reporting 2 or more cases of COVID-19?", + "section": "InfectionsYouAreReporting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "TwoOrMoreCovid", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": " ", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "TwoOrMoreCovid:No" + }, + { + "path": "/2-or-more-covid-details" + } + ] + }, { "path": "/2-or-more-covid-details", "title": "Acute respiratory infections in your setting", @@ -166,6 +200,10 @@ } ], "next": [ + { + "path": "/2-or-more-cases-not-covid-or-flu", + "condition": "WhichARI:COVID19ANDOTHER" + }, { "path": "/do-not-need-to-report", "condition": "ReportCovid:No" @@ -226,6 +264,10 @@ } ], "next": [ + { + "condition": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "path": "/mid-way-summary" + }, { "condition": "TwoOrMoreCasesNotCovidFlu:NO", "path": "/do-not-need-to-report" @@ -235,6 +277,12 @@ } ] }, + { + "path": "/mid-way-summary", + "title": "Mid-way summary", + "section": "InfectionsYouAreReporting", + "components": [] + }, { "path": "/ari-infection-type", "title": "What infection are you reporting?", @@ -2337,6 +2385,92 @@ ] } }, + { + "displayName": "WhichARI:COVID19ANDOTHER", + "name": "WhichARI:COVID19ANDOTHER", + "value": { + "name": "WhichARI:COVID19ANDOTHER", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "value": { + "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, { "displayName": "WhichARI:COVID19", "name": "WhichARI:COVID19", From 82b0c36d88e88fab2b8b5f8f51aefdbbdc6a45c1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 2 Jan 2025 15:14:47 +0000 Subject: [PATCH 016/403] prototype design updates --- runner/src/server/forms/ReportAnOutbreak.json | 232 ++++++++++-------- 1 file changed, 133 insertions(+), 99 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index fda05e3aa2..c9791dff35 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -172,6 +172,10 @@ "title": "Acute respiratory infections in your setting", "section": "InfectionsYouAreReporting", "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, { "name": "TwoOrMoreCovid5days", "options": {}, @@ -632,21 +636,9 @@ "max": 200 }, "nameHasError": false, - "title": "How many service users have flu confirmed by a swab test?", + "title": "How many service users have flu confirmed by a positive swab test?", "hint": "Include those who are currently in hospital or on visits out" }, - { - "name": "ServiceUsersSuspectedFlu", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have suspected (not confirmed) flu?", - "hint": "Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause. Include those who are currently in hospital. If none, enter 0" - }, { "name": "ServiceUsersChestInfection", "options": { @@ -663,9 +655,15 @@ }, { "name": "ServiceUsersARISymptomsNotTestedForFlu", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", - "type": "NumberField" + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0" }, { "name": "ServiceUsersChestInfectionCovid19", @@ -688,29 +686,22 @@ "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff" }, { - "path": "/symptom-onset-flu-multiple-cases" + "path": "/flu-severity-multiple-cases" } ] }, { "path": "/multiple-cases-flu-staff", - "title": "Staff: number of flu or chest infection cases", - "section": "FluAndChestInfectionInYourSetting", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", "components": [ { - "name": "StaffFluSwabTest", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have flu confirmed by a swab test?", - "hint": "Include those who are currently in hospital. If none, enter 0" + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." }, + { - "name": "StaffSuspectedFlu", + "name": "StaffFluSwabTest", "options": {}, "type": "NumberField", "schema": { @@ -718,8 +709,8 @@ "max": 200 }, "nameHasError": false, - "title": "How many staff have suspected (not confirmed) flu?", - "hint": "Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause. Include those who are currently in hospital. If none, enter 0" + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital." }, { "name": "StaffChestInfection", @@ -733,24 +724,22 @@ }, "nameHasError": false, "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Do not include cases you have already reported in this section as having confirmed or suspected flu Include those who are currently in hospital. If none, enter 0" + "hint": "Include those who are currently in hospital
If none, enter 0" }, { - "name": "StaffChestInfectionCovid19", - "options": { - "required": false - }, + "name": "StaffSuspectedFlu", + "options": {}, "type": "NumberField", "schema": { "min": 0, "max": 200 }, "nameHasError": false, - "title": "How many of these staff members with confirmed or suspected flu or a chest infection have been tested for COVID-19?", - "hint": "If none, enter 0" + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

This usually includes people who have a sudden onset of acute respiratory symptoms and fever

Include those who are currently in hospital
If none, enter 0" }, { - "name": "StaffChestInfectionCovid19Positive", + "name": "StaffChestInfectionCovid19", "options": { "required": false }, @@ -760,13 +749,13 @@ "max": 200 }, "nameHasError": false, - "title": "How many of these staff members tested for COVID-19 had a positive result?", + "title": "How many staff have been tested for COVID-19?", "hint": "If none, enter 0" } ], "next": [ { - "path": "/severity-of-illness" + "path": "/flu-severity-multiple-cases" } ] }, @@ -851,13 +840,13 @@ "min": 0, "max": 200 }, - "title": "How many service users are up to date with the current COVID-19 vaccination schedule?", + "title": "Service users: how many are up to date with the current COVID-19 vaccination schedule?", "values": { "type": "listRef" } }, { - "name": "StaffCovid19Vaccination", + "name": "ServiceUsersFluVaccination", "options": { "required": false }, @@ -867,13 +856,13 @@ "min": 0, "max": 200 }, - "title": "How many staff are up to date with the current COVID-19 vaccination schedule?", + "title": "Service users: how many have had the flu vaccine for this current winter season?", "values": { "type": "listRef" } }, { - "name": "ServiceUsersFluVaccination", + "name": "ServiceUsersRSVVaccination", "options": { "required": false }, @@ -883,13 +872,13 @@ "min": 0, "max": 200 }, - "title": "How many service users have had the flu vaccine for this current winter season?", + "title": "Service users: how many have had the respiratory syncytial virus (RSV) vaccine?", "values": { "type": "listRef" } }, { - "name": "StaffFluVaccination", + "name": "StaffCovid19Vaccination", "options": { "required": false }, @@ -899,13 +888,13 @@ "min": 0, "max": 200 }, - "title": "How many staff have had the flu vaccine for this current winter season?", + "title": "Staff: how many are up to date with the current COVID-19 vaccination schedule?", "values": { "type": "listRef" } }, { - "name": "ServiceUsersRSVVaccination", + "name": "StaffFluVaccination", "options": { "required": false }, @@ -915,7 +904,7 @@ "min": 0, "max": 200 }, - "title": "How many service users have had the respiratory syncytial virus (RSV) vaccine?", + "title": "Staff: how many have had the flu vaccine for this current winter season?", "values": { "type": "listRef" } @@ -957,7 +946,7 @@ "path": "/service-users-ari-cases" }, { - "path": "/summary" + "path": "/staff-ari-cases" } ] }, @@ -1191,7 +1180,7 @@ "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "How often do you monitor staff IPC practices?", + "title": "How often do you monitor staff infection prevention and control practices?", "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", "list": "IPCPractices", "values": { @@ -1203,7 +1192,7 @@ "options": {}, "type": "CheckboxesField", "nameHasError": false, - "title": "What issues are you currently experiencing and need support with?", + "title": "What issues do you currently need support with?", "hint": "You can select more than one option", "list": "Issues", "values": { @@ -1216,7 +1205,19 @@ "type": "YesNoField", "nameHasError": false, "title": "Does your setting undertake aerosol generating procedures (AGPs)?", - "hint": "For example, inserting or removing a tracheotomy or ostomy, non-invasive ventilation (NIV), bi-level positive airway pressure (BPAP), continuous positive airway pressure (CPA P), sputum induction, respiratory tract suctioning (mouth suctioning is not an AGP).", + "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", + "values": { + "type": "listRef" + } + }, + { + "name": "MediaInterest", + "options": { + "required": false + }, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you aware of any media interest in this outbreak?", "values": { "type": "listRef" } @@ -1235,24 +1236,37 @@ { "path": "/flu-severity-multiple-cases", "title": "Severity of flu or chest infection cases in this outbreak", + "section": "SeverityOfIllness", "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, { "name": "SingleCaseOfFluSeverityCalledGPMultipleCases", "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "How many cases of suspected or confirmed flu or chest infection have you called the GP about because of the severity of illness in this outbreak?", + "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", "list": "CaseNumbers", "values": { "type": "listRef" } }, + { + "name": "FluSeverityAntibiotics", + "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", + "type": "NumberField", + "options": { + "required": false + } + }, { "name": "FluSeverityHospitalisedMultipleCases", "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "How many service users or staff have been hospitalised because of confirmed or suspected flu or chest infection in this outbreak?", + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "values": { "type": "listRef" @@ -1263,11 +1277,23 @@ "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "How many service users or staff have died because of confirmed or suspected flu or chest infection in this outbreak?", + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "values": { "type": "listRef" } + }, + { + "name": "FluSeveritySpecificArea", + "title": "Are the cases linked to a specific area of the setting?", + "type": "RadiosField", + "nameHasError": false, + "list": "FluSeveritySpecificArea", + "options": {}, + "schema": {}, + "values": { + "type": "listRef" + } } ], "next": [ @@ -1276,7 +1302,7 @@ "condition": "WhichARI:Other" }, { - "path": "/vaccination" + "path": "/symptom-onset" } ] }, @@ -1321,7 +1347,7 @@ "type": "NumberField", "name": "ServiceUsersCovidTestPositive", "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out\nIf none, enter 0", + "hint": "Include those who are currently in hospital or on visits out", "options": { "required": true }, @@ -1333,7 +1359,7 @@ "type": "NumberField", "name": "ServiceUsersSymptomsNotTested", "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", - "hint": "Include those who are currently in hospital or on visits out\nIf none, enter 0", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "options": { "required": true }, @@ -1368,7 +1394,7 @@ { "name": "severityIntro", "type": "Para", - "content": "Include confirmed cases and people with symptoms of acute respiratory infections.", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", "options": {} }, { @@ -1383,7 +1409,7 @@ { "name": "SeverityHospitalisations", "type": "RadiosField", - "title": "How many people have been hospitalised because of an acute respiratory infection in this outbreak?", + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "options": { "required": true @@ -1392,19 +1418,11 @@ { "name": "SeverityDeaths", "type": "RadiosField", - "title": "How many people have died because of an acute respiratory infection in this outbreak?", + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "options": { "required": true } - }, - { - "name": "MediaInterest", - "type": "YesNoField", - "title": "Are you aware of any media interest in this outbreak?", - "options": { - "required": false - } } ], "next": [ @@ -1421,7 +1439,7 @@ { "name": "introText1", "type": "Para", - "content": "Include confirmed cases and people with symptoms of acute respiratory infections.", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", "options": {} }, { @@ -1434,16 +1452,7 @@ "name": "FirstCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the first case in this outbreak?", - "hint": "For example, 31 03 2024", - "options": { - "required": true - } - }, - { - "name": "SecondCaseOnset", - "type": "DatePartsField", - "title": "When did symptoms start in the second case in this outbreak?", - "hint": "For example, 31 03 2024", + "hint": "For example, 31 3 2025", "options": { "required": true } @@ -1451,8 +1460,8 @@ { "name": "MostRecentCaseOnset", "type": "DatePartsField", - "title": "When did symptoms start in the most recent case in this outbreak? (if you have 3 or more cases)", - "hint": "For example, 31 03 2024", + "title": "When did symptoms start in the most recent case in this outbreak?", + "hint": "For example, 31 3 2025", "options": { "required": false } @@ -1477,7 +1486,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital
If none, enter 0", + "hint": "Include those who are currently in hospital", "options": { "required": true }, @@ -1606,7 +1615,7 @@ "type": "TextField", "nameHasError": false, "title": "Your setting postcode", - "hint": "The postcode of the setting where the cases are located, not the management company. If you provide domiciliary or home care, give the postcode of the care provider company", + "hint": "The postcode of the setting where the cases are located, not the management company.", "values": { "type": "listRef" } @@ -1650,7 +1659,7 @@ "name": "nMOTdlmry", "options": {}, "type": "Para", - "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab)\n", + "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab). The CQC location ID is listed on the ‘Registration details’ page for your care setting.", "schema": {} } ], @@ -1793,6 +1802,7 @@ "type": "CheckboxesField", "nameHasError": false, "title": "Select the options that best describe the majority of your service users", + "hint": "You can select more than one option", "list": "ServiceUsersTypes", "values": { "type": "listRef" @@ -1808,6 +1818,7 @@ "max": 200 }, "title": "How many service users currently live in your care setting or use your service?", + "hint": "Include those who are currently in hospital or on visits out", "list": "ServiceUsersTypes" }, { @@ -2034,24 +2045,24 @@ "type": "string", "items": [ { - "text": "We do not monitor infection prevention and control practices", - "value": "We do not monitor infection prevention and control practices" + "text": "more than once a month", + "value": "more than once a month" }, { - "text": "Within the last month", - "value": "Within the last month" + "text": "every 1 to 6 months", + "value": "every 1 to 6 months" }, { - "text": "Between 1 and 6 months ago", - "value": "Between 1 and 6 months ago" + "text": "every 7 to 12 months", + "value": "every 7 to 12 months" }, { - "text": "7 to 12 months ago", - "value": "7 to 12 months ago" + "text": "less than every 12 months", + "value": "less than every 12 months" }, { - "text": "more than 12 months ago", - "value": "more than 12 months ago" + "text": "we do not monitor infection prevention and control practices", + "value": "we do not monitor infection prevention and control practices" } ] }, @@ -2104,8 +2115,8 @@ "value": "Hand hygiene" }, { - "text": "Isolation", - "value": "Isolation" + "text": "Keeping symptomatic service users away from others", + "value": "Keeping symptomatic service users away from others" }, { "text": "New admissions or transfer of service users", @@ -2228,6 +2239,29 @@ "value": "South West HPT" } ] + }, + { + "title": "flu-severity-specific-area", + "name": "FluSeveritySpecificArea", + "type": "string", + "items": [ + { + "text": "Cases are all within one specific area", + "value": "Cases are all within one specific area" + }, + { + "text": "Cases are across more than one area", + "value": "Cases are across more than one area" + }, + { + "text": "Not sure", + "value": "Not sure" + }, + { + "text": "Not applicable to my setting (for example, not residential)", + "value": "Not applicable to my setting (for example, not residential)" + } + ] } ], "sections": [ From eafdcbbd61aeec8c06702ab91be7dfa55a136084 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 6 Jan 2025 16:34:54 +0000 Subject: [PATCH 017/403] adding in triple threat journey --- runner/src/server/forms/ReportAnOutbreak.json | 219 ++++++++++++++++-- 1 file changed, 206 insertions(+), 13 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index c9791dff35..972c1430a0 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -943,7 +943,7 @@ }, { "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-cases" + "path": "/service-users-master" }, { "path": "/staff-ari-cases" @@ -951,36 +951,46 @@ ] }, { - "path": "/service-users-ari-cases", + "path": "/service-users-covid-ari", "title": "Service users: number of cases", "section": "InfectionsInYourSetting", "components": [ { - "name": "ServiceUsersARISymptoms", + "name": "ServiceUsersTestedCovid19", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", - "hint": "Include those who are currently in hospital or on visits out.
If none, enter 0", - "options": { - "required": true - }, + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": {}, "schema": { "min": 0, "max": 200 } }, { - "name": "ServiceUsersTestedCovid19", + "name": "ServiceUsersARISymptoms", "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital or on visits out.
If none, enter 0", "options": { - "required": false + "required": true }, "schema": { "min": 0, "max": 200 } }, + { + "name": "ServiceUsersConfirmedOtherARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out" + }, + { + "name": "ServiceUsersARISymptomsNotTestedForAdenovirus", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, { "name": "ServiceUsersTestedFlu", "type": "NumberField", @@ -1060,6 +1070,164 @@ } ] }, + { + "path": "/service-users-master", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersSymptomsNotTestedCovid19", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersFluSwabTest", + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTestedFlu", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersNotTestedOtherARI", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "path": "/staff-master" + } + ] + }, + { + "path": "/staff-master", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true, + "condition": "covid19" + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffSymptomsNotTestedCovid19", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffFluSwabTest", + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {} + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "StaffSymptomsNotTestedFlu", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out" + }, + { + "name": "StaffNotTestedOtherARI", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, { "path": "/service-users-ari-cases-0", "title": "Service users: number of cases", @@ -1505,6 +1673,18 @@ "schema": { "min": 0 } + }, + { + "name": "FluSeveritySpecificArea", + "title": "Are the cases linked to a specific area of the setting?", + "type": "RadiosField", + "nameHasError": false, + "list": "FluSeveritySpecificArea", + "options": {}, + "schema": {}, + "values": { + "type": "listRef" + } } ], "next": [ @@ -2585,7 +2765,6 @@ ] } }, - { "displayName": "WhichARI:CovidAndOther", "name": "WhichARI:CovidAndOther", @@ -2605,6 +2784,20 @@ "display": "COVID-19" } }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, { "coordinator": "and", "field": { From 5a392120208011869a1bc664b1d904d395da7a4d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 6 Jan 2025 17:06:27 +0000 Subject: [PATCH 018/403] Bump prisma --- queue-model/package.json | 2 +- runner/package.json | 2 +- submitter/package.json | 2 +- yarn.lock | 91 +++++++++++++++++++++++++++++++++------- 4 files changed, 79 insertions(+), 18 deletions(-) diff --git a/queue-model/package.json b/queue-model/package.json index 0d5c98ef64..7a81d991b3 100644 --- a/queue-model/package.json +++ b/queue-model/package.json @@ -32,7 +32,7 @@ "eslint": "^8.10.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-tsdoc": "^0.2.14", - "prisma": "^5.1.1", + "prisma": "^6.1.0", "typescript": "4.9.5" }, "dependencies": { diff --git a/runner/package.json b/runner/package.json index 86121bb07b..445736da43 100644 --- a/runner/package.json +++ b/runner/package.json @@ -122,7 +122,7 @@ "lodash-es": "^4.17.21", "nodemon": "^3.0.2", "pino": "8.15.1", - "prisma": "^5.1.1", + "prisma": "^6.1.0", "sass": "^1.49.9", "sinon": "^13.0.1", "typescript": "4.9.5" diff --git a/submitter/package.json b/submitter/package.json index e3eb2e1122..e64fe4298e 100644 --- a/submitter/package.json +++ b/submitter/package.json @@ -53,7 +53,7 @@ "jest": "^26.6.3", "jest-mock-extended": "^3.0.5", "nodemon": "^3.0.1", - "prisma": "^5.1.1", + "prisma": "^6.1.0", "typescript": "4.9.5" }, "pkg": { diff --git a/yarn.lock b/yarn.lock index 3825b2f0a5..2cde3c8ca0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3688,6 +3688,13 @@ __metadata: languageName: node linkType: hard +"@prisma/debug@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/debug@npm:6.1.0" + checksum: bf0ea217cae6c1cdbf1e90abe578cc104dd734741bad773c9a850a0b0e606982d46a0ebef7d77d0403b3a46a1745d498d40f5064a1c4697bccdc0de72fcaa763 + languageName: node + linkType: hard + "@prisma/engines-version@npm:4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584": version: 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 resolution: "@prisma/engines-version@npm:4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584" @@ -3702,6 +3709,13 @@ __metadata: languageName: node linkType: hard +"@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959": + version: 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 + resolution: "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959" + checksum: d558cc390eb8ca1f07426bf06f67a6c8f9dc2ad15d4d49f613113cfd1355e9f389f89eb85807acdd031330824c80664247baefb2e280dff02a39d97e2172627c + languageName: node + linkType: hard + "@prisma/engines@npm:5.8.0": version: 5.8.0 resolution: "@prisma/engines@npm:5.8.0" @@ -3714,6 +3728,18 @@ __metadata: languageName: node linkType: hard +"@prisma/engines@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/engines@npm:6.1.0" + dependencies: + "@prisma/debug": 6.1.0 + "@prisma/engines-version": 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 + "@prisma/fetch-engine": 6.1.0 + "@prisma/get-platform": 6.1.0 + checksum: 368e66a8ef8d045d0c88c09ae1e128a740bcb29e8111245137c24e4878e73a9342ec0b9a74dce6b5df8a5a3af618de681bd52e99c6406c5256ea5a64279ab623 + languageName: node + linkType: hard + "@prisma/fetch-engine@npm:5.8.0": version: 5.8.0 resolution: "@prisma/fetch-engine@npm:5.8.0" @@ -3725,6 +3751,17 @@ __metadata: languageName: node linkType: hard +"@prisma/fetch-engine@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/fetch-engine@npm:6.1.0" + dependencies: + "@prisma/debug": 6.1.0 + "@prisma/engines-version": 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 + "@prisma/get-platform": 6.1.0 + checksum: e1f85b54cf99dca01f3303c1c4f0f7d62191a6b44c11dbd3fb4545217f277e268f1d8aa691d7449d7231d30937352212cc5ca78b8059d4ab71097d6b29c7091f + languageName: node + linkType: hard + "@prisma/get-platform@npm:5.8.0": version: 5.8.0 resolution: "@prisma/get-platform@npm:5.8.0" @@ -3734,6 +3771,15 @@ __metadata: languageName: node linkType: hard +"@prisma/get-platform@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/get-platform@npm:6.1.0" + dependencies: + "@prisma/debug": 6.1.0 + checksum: f849d7c71553d389352447e095a05094cfd4a4280f9479576c800def5ec182a33c33783ac5f2bb1e08d017dca7dab505da50cb3cdb9813b5ad7589b2561b5824 + languageName: node + linkType: hard + "@sideway/address@npm:^4.1.3": version: 4.1.4 resolution: "@sideway/address@npm:4.1.4" @@ -5096,7 +5142,7 @@ __metadata: eslint: ^8.10.0 eslint-plugin-import: ^2.25.4 eslint-plugin-tsdoc: ^0.2.14 - prisma: ^5.1.1 + prisma: ^6.1.0 typescript: 4.9.5 languageName: unknown linkType: soft @@ -5185,7 +5231,7 @@ __metadata: nunjucks: ^3.2.3 pg-boss: ^10.1.3 pino: 8.15.1 - prisma: ^5.1.1 + prisma: ^6.1.0 resolve: ^1.19.0 sass: ^1.49.9 schmervice: ^1.6.0 @@ -5229,7 +5275,7 @@ __metadata: jest-mock-extended: ^3.0.5 nodemon: ^3.0.1 pino: 8.15.1 - prisma: ^5.1.1 + prisma: ^6.1.0 schmervice: ^1.6.0 typescript: 4.9.5 languageName: unknown @@ -11035,6 +11081,16 @@ __metadata: languageName: node linkType: hard +"fsevents@npm:2.3.3, fsevents@npm:^2.1.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + "fsevents@npm:^1.2.7": version: 1.2.13 resolution: "fsevents@npm:1.2.13" @@ -11046,12 +11102,11 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.1.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@patch:fsevents@2.3.3#~builtin, fsevents@patch:fsevents@^2.1.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.3 - resolution: "fsevents@npm:2.3.3" + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" dependencies: node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard @@ -11066,15 +11121,6 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@^2.1.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - "function-bind@npm:^1.1.1, function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -17454,6 +17500,21 @@ __metadata: languageName: node linkType: hard +"prisma@npm:^6.1.0": + version: 6.1.0 + resolution: "prisma@npm:6.1.0" + dependencies: + "@prisma/engines": 6.1.0 + fsevents: 2.3.3 + dependenciesMeta: + fsevents: + optional: true + bin: + prisma: build/index.js + checksum: 062a940927c60a4ffbdb48d36e301bffb5dcfaddcfa4d4b5ae2cb9854bbfd9c5c6fb3e74a0b7242a1d09c743c2ef817552a788c3ed73e85625373ca0eb6f606a + languageName: node + linkType: hard + "prismjs@npm:1.27.0": version: 1.27.0 resolution: "prismjs@npm:1.27.0" From 6457add4118e9074dbf47c7e3bd9a79d931b7d5c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 6 Jan 2025 17:38:53 +0000 Subject: [PATCH 019/403] bump prisma/client --- queue-model/package.json | 2 +- yarn.lock | 19 +++++-------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/queue-model/package.json b/queue-model/package.json index 7a81d991b3..7b9563cf5e 100644 --- a/queue-model/package.json +++ b/queue-model/package.json @@ -36,6 +36,6 @@ "typescript": "4.9.5" }, "dependencies": { - "@prisma/client": "5.0.0" + "@prisma/client": "^6.1.0" } } diff --git a/yarn.lock b/yarn.lock index 2cde3c8ca0..840d99c68f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3667,17 +3667,15 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:5.0.0": - version: 5.0.0 - resolution: "@prisma/client@npm:5.0.0" - dependencies: - "@prisma/engines-version": 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 +"@prisma/client@npm:^6.1.0": + version: 6.1.0 + resolution: "@prisma/client@npm:6.1.0" peerDependencies: prisma: "*" peerDependenciesMeta: prisma: optional: true - checksum: 332c2af44e880ffc9dd1223992bf6f45910094c7a3a540cbbfdda45d6caf3e82998376338abdf85e34a12f1082ae932f2385d6396c62fe4bba7ec6b84de54466 + checksum: 1b7e5797ea29f5bdb1c4419894cd3853ef8d3fc35bdc2a296c08a1fa695c50b413bc9f3c495c878198145f0ebe04ae18bb0d2265cba08b2fa982c372f99fcc63 languageName: node linkType: hard @@ -3695,13 +3693,6 @@ __metadata: languageName: node linkType: hard -"@prisma/engines-version@npm:4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584": - version: 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 - resolution: "@prisma/engines-version@npm:4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584" - checksum: 8fcbceef3b554ee7fa404bead50be5286412a097b21723272aff298b289caf2802b01b84bb85c4c9f3b592eeac114c8d6e79db083f271dc8c54f453b4a515233 - languageName: node - linkType: hard - "@prisma/engines-version@npm:5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848": version: 5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848 resolution: "@prisma/engines-version@npm:5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848" @@ -5136,7 +5127,7 @@ __metadata: "@babel/eslint-plugin": ^7.22.10 "@babel/preset-env": ^7.23.3 "@babel/preset-typescript": ^7.23.3 - "@prisma/client": 5.0.0 + "@prisma/client": ^6.1.0 "@types/node": ^20.4.6 babel-eslint: ^10.1.0 eslint: ^8.10.0 From 2d8cb01a87327de8037520ef5caeb0fee37ccd28 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:46:05 +0000 Subject: [PATCH 020/403] updates --- runner/src/server/forms/ReportAnOutbreak.json | 483 +++++++++--------- 1 file changed, 244 insertions(+), 239 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 972c1430a0..af6afcd742 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -307,59 +307,30 @@ ], "next": [ { - "path": "/ari-cases-setting" - } - ] - }, - { - "path": "/ari-cases-setting-known", - "title": "Who are you reporting cases or symptoms of adenovirus in?", - "section": "AdenovirusInYourSetting", - "components": [ - { - "name": "AdenovirusServiceStaff", - "options": {}, - "type": "CheckboxesField", - "nameHasError": false, - "title": "Who are you reporting cases or symptoms of adenovirus in?", - "hint": "You can select more than one option", - "list": "ServiceOrStaff", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/service-users-adenovirus", - "condition": "AdenovirusServiceStaff:ServiceUsers" - }, - { - "path": "/staff-adenovirus", - "condition": "AdenovirusServiceStaff:Staff" + "path": "/ari-confirmed-cases-setting" } ] }, { - "path": "/service-users-adenovirus", - "title": "Service users: number of adenovirus cases", + "path": "/service-users-ari-confirmed", + "title": "Service users: number of cases", "section": "AdenovirusInYourSetting", "components": [ { - "name": "ServiceUsersConfirmedAdenovirus", + "name": "ServiceUsersConfirmedARI", "type": "NumberField", - "title": "How many symptomatic service users have tested positive for adenovirus in your setting? (confirmed cases)", - "hint": "If none, enter 0", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 } }, { - "name": "ServiceUsersSuspectedAdenovirus", + "name": "ServiceUsersSuspectedARI", "type": "NumberField", - "title": "How many service users have similar symptoms but have not tested positive? (suspected cases)", - "hint": "If none, enter 0", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "schema": { "min": 0, "max": 999 @@ -368,38 +339,24 @@ { "name": "ServiceUsersTestedCovid", "type": "NumberField", - "title": "How many symptomatic service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "ServiceUsersPositiveCovid", - "type": "NumberField", - "title": "Of the symptomatic service users tested for COVID-19, how many had a positive result?", + "title": "How many service users have been tested for COVID-19?", "hint": "If none, enter 0", "schema": { "min": 0, "max": 999 + }, + "options": { + "required": false } }, { "name": "ServiceUsersTestedFlu", "type": "NumberField", - "title": "How many symptomatic service users have been tested for flu?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "ServiceUsersPositiveFlu", - "type": "NumberField", - "title": "Of the symptomatic service users tested for flu, how many had a positive result?", + "title": "How many service users have been tested for flu?", "hint": "If none, enter 0", + "options": { + "required": false + }, "schema": { "min": 0, "max": 999 @@ -408,34 +365,34 @@ ], "next": [ { - "path": "/staff-adenovirus", - "condition": "AdenovirusServiceStaff:Both" + "path": "/staff-ari-confirmed", + "condition": "ConfirmedARIServiceStaff:Staff" }, { - "path": "/severity-adenovirus" + "path": "/severity-of-illness" } ] }, { - "path": "/staff-adenovirus", - "title": "Staff: number of adenovirus cases", - "section": "AdenovirusInYourSetting", + "path": "/staff-ari-confirmed", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", "components": [ { - "name": "StaffConfirmedAdenovirus", + "name": "StaffConfirmedARI", "type": "NumberField", - "title": "How many symptomatic staff have tested positive with this ARI in your setting? (confirmed cases)", - "hint": "If none, enter 0", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 } }, { - "name": "StaffSuspectedAdenovirus", + "name": "StaffSuspectedARI", "type": "NumberField", - "title": "How many staff have similar symptoms but have not tested positive for an ARI? (suspected cases)", - "hint": "If none, enter 0", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "schema": { "min": 0, "max": 999 @@ -444,38 +401,24 @@ { "name": "StaffTestedCovid", "type": "NumberField", - "title": "How many symptomatic staff have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "StaffPositiveCovid", - "type": "NumberField", - "title": "Of the symptomatic staff tested for COVID-19, how many had a positive result?", + "title": "How many staff have been tested for COVID-19?", "hint": "If none, enter 0", "schema": { "min": 0, "max": 999 + }, + "options": { + "required": false } }, { "name": "StaffTestedFlu", "type": "NumberField", - "title": "How many symptomatic staff have been tested for flu?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "StaffPositiveFlu", - "type": "NumberField", - "title": "Of the symptomatic staff tested for flu, how many had a positive result?", + "title": "How many staff have been tested for flu?", "hint": "If none, enter 0", + "options": { + "required": false + }, "schema": { "min": 0, "max": 999 @@ -484,54 +427,7 @@ ], "next": [ { - "path": "/severity-adenovirus" - } - ] - }, - { - "path": "/severity-adenovirus", - "title": "Severity of adenovirus cases in this outbreak", - "section": "AdenovirusInYourSetting", - "components": [ - { - "name": "CasesCalledGP", - "type": "RadiosField", - "title": "How many cases of ARI have you called the GP about because of the severity of illness in this outbreak?", - "list": "CaseNumbers", - "schema": {}, - "options": {} - }, - { - "name": "CasesGivenAntibiotics", - "type": "NumberField", - "title": "How many service users or staff have been given antibiotics for their respiratory symptoms? (optional)", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": {} - }, - { - "name": "CasesHospitalised", - "type": "RadiosField", - "title": "How many service users or staff have been hospitalised because of this ARI in this outbreak?", - "list": "CaseNumbers", - "schema": {}, - "options": {} - }, - { - "name": "CasesDeaths", - "type": "RadiosField", - "title": "How many service users or staff have died because of this ARI during this outbreak?", - "list": "CaseNumbers", - "schema": {}, - "options": {} - } - ], - "next": [ - { - "path": "/symptom-onset" + "path": "/severity-of-illness" } ] }, @@ -614,7 +510,7 @@ ], "next": [ { - "path": "/multiple-cases-flu-service-users", + "path": "/service-users-flu", "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsers" }, { @@ -623,7 +519,7 @@ ] }, { - "path": "/multiple-cases-flu-service-users", + "path": "/service-users-flu", "title": "Service users: number of cases", "section": "InfectionsInYourSetting", "components": [ @@ -917,7 +813,41 @@ ] }, { - "path": "/ari-cases-setting", + "path": "/ari-unknown-cases-setting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "title": " ", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "required": true + } + } + ], + "next": [ + { + "condition": "ARIServiceOrStaff:Both", + "path": "/ari-cases" + }, + { + "condition": "ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-master" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", "section": "InfectionsInYourSetting", "components": [ @@ -956,40 +886,44 @@ "section": "InfectionsInYourSetting", "components": [ { - "name": "ServiceUsersTestedCovid19", "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "options": {}, + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, "schema": { - "min": 0, - "max": 200 + "min": 0 } }, { - "name": "ServiceUsersARISymptoms", "type": "NumberField", + "name": "ServiceUsersSymptomsNotTestedCovid19", "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", - "hint": "Include those who are currently in hospital or on visits out.
If none, enter 0", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "options": { "required": true }, "schema": { - "min": 0, - "max": 200 + "min": 0 } }, { - "name": "ServiceUsersConfirmedOtherARI", + "name": "ServiceUsersConfirmedARI", "type": "NumberField", "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out" + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} }, { - "name": "ServiceUsersARISymptomsNotTestedForAdenovirus", + "name": "ServiceUsersNotTestedOtherARI", "type": "NumberField", "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} }, { "name": "ServiceUsersTestedFlu", @@ -1001,7 +935,7 @@ }, "schema": { "min": 0, - "max": 200 + "max": 999 } } ], @@ -1228,61 +1162,6 @@ } ] }, - { - "path": "/service-users-ari-cases-0", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersARISymptoms", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection but have not tested positive?", - "hint": "Include those who are currently in hospital or on visits out.
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0, - "max": 200 - } - }, - { - "name": "ServiceUsersTestedCovid19", - "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 200 - } - }, - { - "name": "ServiceUsersTestedFlu", - "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 200 - } - } - ], - "next": [ - { - "path": "/staff-ari-cases-0", - "condition": "ARIServiceOrStaff:Both" - }, - { - "path": "/severity-of-illness" - } - ] - }, { "path": "/staff-ari-cases-0", "title": "Staff: Number of cases", @@ -1494,11 +1373,11 @@ "next": [ { "condition": "CovidServiceOrStaff:Both", - "path": "/service-users-covid-cases" + "path": "/service-users-covid" }, { "condition": "CovidServiceOrStaff:ServiceUsers", - "path": "/service-users-covid-cases" + "path": "/service-users-covid" }, { "condition": "CovidServiceOrStaff:Staff", @@ -1507,7 +1386,7 @@ ] }, { - "path": "/service-users-covid-cases", + "path": "/service-users-covid", "title": "Service users: number of cases", "section": "InfectionsInYourSetting", "components": [ @@ -1525,7 +1404,7 @@ }, { "type": "NumberField", - "name": "ServiceUsersSymptomsNotTested", + "name": "ServiceUsersSymptomsNotTestedCovid19", "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "options": { @@ -1554,6 +1433,140 @@ } ] }, + { + "path": "/service-users-covid-flu", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersSymptomsNotTestedCovid19", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersFluSwabTest", + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTestedFlu", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "path": "/staff-master" + } + ] + }, + { + "path": "/service-users-flu-ari", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersFluSwabTest", + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTestedFlu", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersNotTestedOtherARI", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": {}, + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/staff-master" + } + ] + }, { "path": "/severity-of-illness", "title": "Severity of illness in this outbreak", @@ -1692,10 +1705,6 @@ "path": "/cases-of-flu", "condition": "WhichARI:CovidAndFlu" }, - { - "path": "/ari-cases-setting-adenovirus", - "condition": "WhichARI:Other" - }, { "path": "/severity-of-illness" } @@ -2501,10 +2510,6 @@ "name": "ConfirmedOrUnknownARI", "title": "Confirmed or unknown acute respiratory infection" }, - { - "name": "AdenovirusInYourSetting", - "title": "Adenovirus in your setting" - }, { "name": "FluInYourSetting", "title": "Flu in your setting" @@ -3136,14 +3141,14 @@ } }, { - "displayName": "AdenovirusServiceStaff:Both", - "name": "AdenovirusServiceStaff:Both", + "displayName": "ConfirmedARIServiceStaff:Both", + "name": "ConfirmedARIServiceStaff:Both", "value": { - "name": "AdenovirusServiceStaff:Both", + "name": "ConfirmedARIServiceStaff:Both", "conditions": [ { "field": { - "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", "type": "CheckboxesField", "display": "Who are you reporting cases of adenovirus in?" }, @@ -3157,7 +3162,7 @@ { "coordinator": "and", "field": { - "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", "type": "CheckboxesField", "display": "Who are you reporting cases of adenovirus in?" }, @@ -3172,14 +3177,14 @@ } }, { - "displayName": "AdenovirusServiceStaff:ServiceUsers", - "name": "AdenovirusServiceStaff:ServiceUsers", + "displayName": "ConfirmedARIServiceStaff:ServiceUsers", + "name": "ConfirmedARIServiceStaff:ServiceUsers", "value": { - "name": "AdenovirusServiceStaff:ServiceUsers", + "name": "ConfirmedARIServiceStaff:ServiceUsers", "conditions": [ { "field": { - "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", "type": "CheckboxesField", "display": "Who are you reporting cases of adenovirus in?" }, @@ -3194,14 +3199,14 @@ } }, { - "displayName": "AdenovirusServiceStaff:Staff", - "name": "AdenovirusServiceStaff:Staff", + "displayName": "ConfirmedARIServiceStaff:Staff", + "name": "ConfirmedARIServiceStaff:Staff", "value": { - "name": "AdenovirusServiceStaff:Staff", + "name": "ConfirmedARIServiceStaff:Staff", "conditions": [ { "field": { - "name": "AdenovirusInYourSetting.AdenovirusServiceStaff", + "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", "type": "CheckboxesField", "display": "Who are you reporting cases of adenovirus in?" }, From 60a953541a61cdd0df43ef48b46a352a77a1d22b Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:52:49 +0000 Subject: [PATCH 021/403] Add 2x infection journeys --- runner/src/server/forms/ReportAnOutbreak.json | 877 ++++++++++++++++-- 1 file changed, 825 insertions(+), 52 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index af6afcd742..c8d2de6004 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -102,6 +102,10 @@ "path": "/2-or-more-covid-descriptive", "condition": "WhichARI:COVID19ANDOTHER" }, + { + "path": "/2-or-more-covid-descriptive", + "condition": "WhichARI:COVID19ANDFLU" + }, { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, { "path": "/2-or-more-cases-not-covid-or-flu" } @@ -213,7 +217,7 @@ "condition": "ReportCovid:No" }, { - "path": "/covid-cases-setting" + "path": "/ari-confirmed-cases-setting" } ] }, @@ -239,11 +243,10 @@ "condition": "TwoOrMoreARI:No" }, { - "path": "/ari-cases-setting" + "path": "/ari-unknown-cases-setting" } ] }, - { "path": "/do-not-need-to-report", "title": "You do not need to report", @@ -314,7 +317,7 @@ { "path": "/service-users-ari-confirmed", "title": "Service users: number of cases", - "section": "AdenovirusInYourSetting", + "section": "InfectionsInYourSetting", "components": [ { "name": "ServiceUsersConfirmedARI", @@ -366,8 +369,112 @@ "next": [ { "path": "/staff-ari-confirmed", - "condition": "ConfirmedARIServiceStaff:Staff" + "condition": "ARIServiceOrStaff:Staff" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-unknown", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection but have not been tested?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-unknown", + "condition": "ARIServiceOrStaff:Staff" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-unknown", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection but have not been tested?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } }, + { + "name": "StaffTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ { "path": "/severity-of-illness" } @@ -455,7 +562,7 @@ "condition": "NumberOfCasesOfFlu:One" }, { - "path": "/multiple-cases-of-flu" + "path": "/ari-confirmed-cases-setting" } ] }, @@ -833,16 +940,12 @@ } ], "next": [ - { - "condition": "ARIServiceOrStaff:Both", - "path": "/ari-cases" - }, { "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-master" + "path": "/service-users-ari-unknown" }, { - "path": "/staff-ari-cases" + "path": "/staff-ari-unknown" } ] }, @@ -868,12 +971,40 @@ ], "next": [ { - "condition": "ARIServiceOrStaff:Both", - "path": "/ari-cases" + "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-master" + }, + { + "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "path": "/staff-master" + }, + { + "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-covid-flu" + }, + { + "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "path": "/staff-covid-flu" + }, + { + "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-covid-ari" + }, + { + "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "path": "/staff-covid-ari" + }, + { + "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-flu-ari" + }, + { + "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "path": "/staff-flu-ari" }, { "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-master" + "path": "/service-users-ari-confirmed" }, { "path": "/staff-ari-cases" @@ -1345,7 +1476,7 @@ ], "next": [ { - "path": "/ari-cases-setting", + "path": "/ari-unknown-cases-setting", "condition": "WhichARI:Other" }, { @@ -1426,7 +1557,7 @@ }, { "condition": "WhichARI:Other", - "path": "/ari-cases-setting" + "path": "/ari-unknown-cases-setting" }, { "path": "/severity-of-illness" @@ -1495,7 +1626,77 @@ ], "next": [ { - "path": "/staff-master" + "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "path": "/staff-covid-flu" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-covid-flu", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffSymptomsNotTestedCovid19", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffFluSwabTest", + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "StaffSymptomsNotTestedFlu", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "path": "/severity-of-illness" } ] }, @@ -1563,53 +1764,125 @@ ], "next": [ { - "path": "/staff-master" + "path": "/staff-flu-ari", + "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff" + }, + { + "path": "/severity-of-illness" } ] }, { - "path": "/severity-of-illness", - "title": "Severity of illness in this outbreak", - "section": "SeverityOfIllness", + "path": "/staff-flu-ari", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", "components": [ { - "name": "severityIntro", - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "type": "NumberField", + "name": "StaffFluSwabTest", + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, "options": {} }, { - "name": "SeverityGPCalls", - "type": "RadiosField", - "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", - "list": "CaseNumbers", + "name": "StaffChestInfection", "options": { - "required": true - } + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "SeverityHospitalisations", - "type": "RadiosField", - "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", - "list": "CaseNumbers", - "options": { - "required": true - } + "name": "StaffSymptomsNotTestedFlu", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} }, { - "name": "SeverityDeaths", - "type": "RadiosField", - "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", - "list": "CaseNumbers", - "options": { - "required": true - } - } - ], - "next": [ - { - "path": "/symptom-onset" - } + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "StaffNotTestedOtherARI", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "StaffUsersTestedCovid", + "type": "NumberField", + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": {}, + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/severity-of-illness", + "title": "Severity of illness in this outbreak", + "section": "SeverityOfIllness", + "components": [ + { + "name": "severityIntro", + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "SeverityGPCalls", + "type": "RadiosField", + "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityHospitalisations", + "type": "RadiosField", + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityDeaths", + "type": "RadiosField", + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + } + ], + "next": [ + { + "path": "/symptom-onset" + } ] }, { @@ -2640,6 +2913,42 @@ ] } }, + { + "displayName": "WhichARI:COVID19ANDFLU", + "name": "WhichARI:COVID19ANDFLU", + "value": { + "name": "WhichARI:COVID19ANDFLU", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, { "displayName": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", @@ -2792,7 +3101,143 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.InfectionsYouAreReporting.WhichARI", + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidFluAndConfirmedARI", + "name": "WhichARI:CovidFluAndConfirmedARI", + "value": { + "name": "WhichARI:CovidFluAndConfirmedARI", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -2803,6 +3248,20 @@ "display": "COVID-19" } }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, { "coordinator": "and", "field": { @@ -2816,6 +3275,320 @@ "value": "Any other acute respiratory infections", "display": "Any other acute respiratory infections" } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } } ] } From 71f588cf0f89b5f5c36698c320495c36cc750d51 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 9 Jan 2025 15:21:12 +0000 Subject: [PATCH 022/403] Add sessionCookiePassword to default.js --- runner/config/default.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/config/default.js b/runner/config/default.js index 691b169b82..b66cbd9023 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,7 +68,7 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - // sessionCookiePassword: "", + sessionCookiePassword: "${SessionCookies.Password}", // redisHost: "http://localhost", // redisPort: 6379, // redisPassword: nanoid.random(16), // This should be set if you are deploying replicas From 0aa7e9bac56548af549f5ee67b23dbb39009acbc Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 9 Jan 2025 16:00:38 +0000 Subject: [PATCH 023/403] add in redis config --- runner/config/default.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index b66cbd9023..51db0e2c69 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -69,10 +69,10 @@ module.exports = { confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. sessionCookiePassword: "${SessionCookies.Password}", - // redisHost: "http://localhost", - // redisPort: 6379, - // redisPassword: nanoid.random(16), // This should be set if you are deploying replicas - // redisTls: true, //run in TLS mode + redisHost: "${Redis.Host}", + redisPort: 6379, + redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + redisTls: true, //run in TLS mode /** * SSL From 3024be435840359adcf844b5c7740871b0e46d0e Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 10 Jan 2025 13:50:09 +0000 Subject: [PATCH 024/403] add Google Tag Manager ID and serviceName from previous form --- runner/config/default.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 51db0e2c69..08dfa9e00a 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -44,7 +44,7 @@ module.exports = { * Analytics */ // Google Tag Manager - you must amend the privacy notice if you use GTM to load analytics scripts. - // gtmId1: "", + gtmId1: "GTM-MM6VPCXX", // gtmId2: "", // Matomo (aka Piwik) @@ -55,7 +55,7 @@ module.exports = { * Service */ serviceUrl: "http://localhost:3009", //This is used for redirects back to the runner. - serviceName: "Digital Form Builder - Runner", + serviceName: "Webforms", serviceStartPage: "", privacyPolicyUrl: "", feedbackLink: "#", // Used in your phase banner. Can be a URL or more commonly mailto mailto:feedback@department.gov.uk From 022b403b01397f530c4d1126d6a35e6e42527b78 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 13 Jan 2025 15:28:18 +0000 Subject: [PATCH 025/403] design updates --- runner/config/default.js | 10 +- runner/src/server/forms/ReportAnOutbreak.json | 522 +++++++++--------- 2 files changed, 274 insertions(+), 258 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 08dfa9e00a..4ace77fc8a 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - sessionCookiePassword: "${SessionCookies.Password}", - redisHost: "${Redis.Host}", - redisPort: 6379, - redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - redisTls: true, //run in TLS mode + // sessionCookiePassword: "${SessionCookies.Password}", + // redisHost: "${Redis.Host}", + // redisPort: 6379, + // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + // redisTls: true, //run in TLS mode /** * SSL diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index c8d2de6004..6a1046eab6 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -330,9 +330,9 @@ } }, { - "name": "ServiceUsersSuspectedARI", + "name": "ServiceUsersSymptomsNotTested", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "schema": { "min": 0, @@ -438,9 +438,9 @@ "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." }, { - "name": "StaffConfirmedARI", + "name": "StaffSymptomsNotTested", "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection but have not been tested?", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, @@ -496,9 +496,9 @@ } }, { - "name": "StaffSuspectedARI", + "name": "StaffSymptomsNotTested", "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "schema": { "min": 0, @@ -593,38 +593,6 @@ } ] }, - { - "path": "/multiple-cases-of-flu", - "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "MultipleCasesOfFluServiceOrStaff", - "options": {}, - "type": "CheckboxesField", - "nameHasError": false, - "title": " ", - "hint": "You can select more than one option", - "list": "ServiceOrStaffMultiple", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/service-users-flu", - "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsers" - }, - { - "path": "/multiple-cases-flu-staff" - } - ] - }, { "path": "/service-users-flu", "title": "Service users: number of cases", @@ -657,7 +625,7 @@ "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "ServiceUsersARISymptomsNotTestedForFlu", + "name": "ServiceUsersSymptomsNotTested", "options": {}, "type": "NumberField", "schema": { @@ -665,7 +633,7 @@ "max": 200 }, "nameHasError": false, - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0" }, { @@ -685,7 +653,7 @@ ], "next": [ { - "path": "/multiple-cases-flu-staff", + "path": "/staff-flu", "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff" }, { @@ -694,7 +662,7 @@ ] }, { - "path": "/multiple-cases-flu-staff", + "path": "/staff-flu", "title": "Staff: number of cases", "section": "InfectionsInYourSetting", "components": [ @@ -730,7 +698,7 @@ "hint": "Include those who are currently in hospital
If none, enter 0" }, { - "name": "StaffSuspectedFlu", + "name": "StaffSymptomsNotTested", "options": {}, "type": "NumberField", "schema": { @@ -738,7 +706,7 @@ "max": 200 }, "nameHasError": false, - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

This usually includes people who have a sudden onset of acute respiratory symptoms and fever

Include those who are currently in hospital
If none, enter 0" }, { @@ -773,7 +741,7 @@ "type": "DatePartsField", "nameHasError": false, "title": "When did symptoms start?", - "hint": "For example, 31 03 2024", + "hint": "For example, 31 3 2024", "values": { "type": "listRef" } @@ -1002,6 +970,22 @@ "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", "path": "/staff-flu-ari" }, + { + "path": "/service-users-flu", + "condition": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers" + }, + { + "path": "/staff-flu", + "condition": "WhichARI:Flu&ARIServiceOrStaff:Staff" + }, + { + "path": "/service-users-covid", + "condition": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers" + }, + { + "path": "/staff-covid", + "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff" + }, { "condition": "ARIServiceOrStaff:ServiceUsers", "path": "/service-users-ari-confirmed" @@ -1029,10 +1013,55 @@ } }, { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersSymptomsNotTested", "type": "NumberField", - "name": "ServiceUsersSymptomsNotTestedCovid19", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-cases", + "condition": "ARIServiceOrStaff:Both" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-covid-ari", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", "options": { "required": true }, @@ -1041,25 +1070,25 @@ } }, { - "name": "ServiceUsersConfirmedARI", + "name": "StaffConfirmedARI", "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", + "title": "How many staff have tested positive for adenovirus?", "hint": "Include those who are currently in hospital or on visits out", "schema": {}, "options": {} }, { - "name": "ServiceUsersNotTestedOtherARI", + "name": "StaffSymptomsNotTested", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, "options": {} }, { - "name": "ServiceUsersTestedFlu", + "name": "StaffTestedFlu", "type": "NumberField", - "title": "How many service users have been tested for flu?", + "title": "How many staff have been tested for flu?", "hint": "If none, enter 0", "options": { "required": false @@ -1071,10 +1100,6 @@ } ], "next": [ - { - "path": "/staff-ari-cases", - "condition": "ARIServiceOrStaff:Both" - }, { "path": "/severity-of-illness" } @@ -1090,9 +1115,9 @@ "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." }, { - "name": "OtherARIStaffARISymptoms", + "name": "StaffSymptomsNotTested", "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection but have not been tested?", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital
If none, enter 0", "options": { "required": true @@ -1154,8 +1179,8 @@ }, { "type": "NumberField", - "name": "ServiceUsersSymptomsNotTestedCovid19", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "options": { "required": true @@ -1187,8 +1212,8 @@ "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "ServiceUsersSymptomsNotTestedFlu", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, @@ -1203,9 +1228,9 @@ "options": {} }, { - "name": "ServiceUsersNotTestedOtherARI", + "name": "ServiceUsersNotTested", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, "options": {} @@ -1235,18 +1260,6 @@ "min": 0 } }, - { - "type": "NumberField", - "name": "StaffSymptomsNotTestedCovid19", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, { "type": "NumberField", "name": "StaffFluSwabTest", @@ -1268,12 +1281,6 @@ "title": "How many staff have been diagnosed with a chest infection by a GP?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, - { - "name": "StaffSymptomsNotTestedFlu", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0" - }, { "name": "StaffConfirmedARI", "type": "NumberField", @@ -1281,65 +1288,10 @@ "hint": "Include those who are currently in hospital or on visits out" }, { - "name": "StaffNotTestedOtherARI", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-ari-cases-0", - "title": "Staff: Number of cases", - "section": "Infections in your setting", - "components": [ - { - "type": "Para", - "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." - }, - { - "name": "OtherARIStaffARISymptoms", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection but have not been tested?", - "hint": "Include those who are currently in hospital
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0, - "max": 200 - } - }, - { - "name": "OtherARIStaffTestedCovid", - "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 200 - } - }, - { - "name": "OtherARIStaffTestedFlu", + "name": "StaffSymptomsNotTested", "type": "NumberField", - "title": "How many staff have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 200 - } + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out

If none, enter 0" } ], "next": [ @@ -1484,38 +1436,6 @@ } ] }, - { - "path": "/covid-cases-setting", - "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "CheckboxesField", - "name": "CovidServiceOrStaff", - "options": {}, - "title": "Who has an acute respiratory infection?", - "hint": "You can select more than one option", - "list": "ServiceOrStaffMultiple", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "condition": "CovidServiceOrStaff:Both", - "path": "/service-users-covid" - }, - { - "condition": "CovidServiceOrStaff:ServiceUsers", - "path": "/service-users-covid" - }, - { - "condition": "CovidServiceOrStaff:Staff", - "path": "/staff-covid-cases" - } - ] - }, { "path": "/service-users-covid", "title": "Service users: number of cases", @@ -1535,8 +1455,8 @@ }, { "type": "NumberField", - "name": "ServiceUsersSymptomsNotTestedCovid19", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "options": { "required": true @@ -1548,17 +1468,9 @@ ], "next": [ { - "condition": "CovidServiceOrStaff:Staff", + "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff", "path": "/staff-covid-cases" }, - { - "condition": "WhichARI:FLU", - "path": "/cases-of-flu" - }, - { - "condition": "WhichARI:Other", - "path": "/ari-unknown-cases-setting" - }, { "path": "/severity-of-illness" } @@ -1581,18 +1493,6 @@ "min": 0 } }, - { - "type": "NumberField", - "name": "ServiceUsersSymptomsNotTestedCovid19", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, { "type": "NumberField", "name": "ServiceUsersFluSwabTest", @@ -1616,10 +1516,10 @@ "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "ServiceUsersSymptomsNotTestedFlu", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out

If none, enter 0", "schema": {}, "options": {} } @@ -1651,18 +1551,6 @@ "min": 0 } }, - { - "type": "NumberField", - "name": "StaffSymptomsNotTestedCovid19", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, { "type": "NumberField", "name": "StaffFluSwabTest", @@ -1686,8 +1574,8 @@ "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "StaffSymptomsNotTestedFlu", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "name": "StaffSymptomsNotTested", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, @@ -1713,6 +1601,14 @@ "schema": {}, "options": {} }, + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, { "name": "ServiceUsersChestInfection", "options": { @@ -1728,29 +1624,13 @@ "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "ServiceUsersSymptomsNotTestedFlu", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for flu?", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, "options": {} }, - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersNotTestedOtherARI", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, { "name": "ServiceUsersTestedCovid", "type": "NumberField", @@ -1785,6 +1665,14 @@ "schema": {}, "options": {} }, + { + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, { "name": "StaffChestInfection", "options": { @@ -1800,29 +1688,13 @@ "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, { - "name": "StaffSymptomsNotTestedFlu", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for flu?", + "name": "StaffSymptomsNotTested", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, "options": {} }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "StaffNotTestedOtherARI", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, { "name": "StaffUsersTestedCovid", "type": "NumberField", @@ -1951,7 +1823,7 @@ { "type": "NumberField", "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for COVID-19?", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital
If none, enter 0", "options": { "required": true @@ -3493,6 +3365,78 @@ ] } }, + { + "displayName": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", @@ -3593,6 +3537,78 @@ ] } }, + { + "displayName": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "ReportCovid:No", "name": "ReportCovid:No", @@ -3601,7 +3617,7 @@ "conditions": [ { "field": { - "name": "TwoOrMoreCovid5days", + "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", "type": "RadiosField", "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" }, @@ -3613,9 +3629,9 @@ } }, { - "coordinator": "or", + "coordinator": "and", "field": { - "name": "TwoOrMoreCovidSpread", + "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", "type": "RadiosField", "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" }, From 74946f6905301352c7c13578888d5c1f4a8854b2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 16 Jan 2025 10:45:34 +0000 Subject: [PATCH 026/403] CAR-180 Add non-submitting summary page controller and custom html page in order to enable 'Do Not Report' Page --- designer/client/page-create.js | 3 + designer/client/page-edit.js | 3 + model/src/components/types.ts | 1 + model/src/data-model/types.ts | 6 + .../NonSubmittingSummaryPageController.ts | 158 ++++++++++++++++++ .../plugins/engine/pageControllers/helpers.ts | 2 + .../plugins/engine/pageControllers/index.ts | 1 + .../server/views/non-submitting-summary.html | 45 +++++ 8 files changed, 219 insertions(+) create mode 100644 runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts create mode 100644 runner/src/server/views/non-submitting-summary.html diff --git a/designer/client/page-create.js b/designer/client/page-create.js index 8196166c41..e441c6b7a6 100644 --- a/designer/client/page-create.js +++ b/designer/client/page-create.js @@ -206,6 +206,9 @@ class PageCreate extends React.Component { + diff --git a/designer/client/page-edit.js b/designer/client/page-edit.js index e7f1c542bf..55d953de42 100644 --- a/designer/client/page-edit.js +++ b/designer/client/page-edit.js @@ -235,6 +235,9 @@ export class PageEdit extends React.Component { + ; + shortTitle?: string; }; list: string; schema: {}; diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index dbe6ef6e4a..adbfedfc94 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -31,6 +31,12 @@ export interface RepeatingFieldPage extends Page { }; }; } +export interface NonSubmittingSummaryPage extends Page { + controller: "NonSubmittingSummaryPageController"; + options: { + customText: any; + }; +} export interface Section { name: string; diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts new file mode 100644 index 0000000000..85f0d04d04 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts @@ -0,0 +1,158 @@ +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { PageController } from "server/plugins/engine/pageControllers/PageController"; + +import { FormComponent } from "server/plugins/engine/components"; +import { PageControllerBase } from "server/plugins/engine/pageControllers/PageControllerBase"; +import { FormModel } from "server/plugins/engine/models"; +import { NonSubmittingSummaryPage } from "@xgovformbuilder/model"; + +const DEFAULT_OPTIONS = { + customText: {}, +}; + +export class NonSubmittingSummaryPageController extends PageController { + returnUrlParameter: string; + options: NonSubmittingSummaryPage["options"]; + + constructor(model: FormModel, pageDef: NonSubmittingSummaryPage) { + super(model, pageDef); + + const returnPath = `/${this.model.basePath}${this.path}`; + this.returnUrlParameter = `?returnUrl=${encodeURIComponent(returnPath)}`; + this.options = pageDef?.options ?? DEFAULT_OPTIONS; + this.options.customText ??= DEFAULT_OPTIONS.customText; + } + /** + * Returns an async function. This is called in plugin.ts when there is a GET request at `/{id}/{path*}`, + */ + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.langFromRequest(request); + + const viewModel = await this.summaryViewModel(request); + + return h.view("non-submitting-summary", viewModel); + }; + } + + /** + * Returns an async function. This is called in plugin.ts when there is a POST request at `/{id}/{path*}`. + * If a form is incomplete, a user will be redirected to the start page. + */ + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const { cacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + + request.yar.set("basePath", model.basePath); + + const nextPage = this.getNext(state); + return h.redirect(nextPage); + }; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } + + async summaryViewModel(request: HapiRequest) { + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const { progress = [] } = state; + + const { relevantPages } = this.model.getRelevantPages(state); + + const rowsBySection = relevantPages.reduce((prev, page) => { + const sectionName = page.section?.name; + const section = prev[sectionName] ?? []; + let sectionState = sectionName ? state[sectionName] || {} : state; + + const toRow = this.formItemsToRowByPage({ + page, + sectionState, + fullState: state, + }); + + section.push(...page.components.formItems.map(toRow)); + + prev[sectionName] = section; + return prev; + }, {}); + + const summaryLists = Object.entries(rowsBySection).map( + ([section, rows]) => { + const modelSection = this.model.sections.find( + (mSection) => mSection.name === section + ); + + return { + sectionTitle: !modelSection?.hideTitle ? modelSection?.title : "", + section, + rows, + }; + } + ); + + return { + pageTitle: this.title, + sectionTitle: this.section?.title, + backLink: progress[progress.length - 1] ?? this.backLinkFallback, + name: this.model.name, + summaryLists, + showTitle: true, + customText: this.options.customText, + }; + } + + formItemsToRowByPage({ + page, + sectionState, + fullState, + }: { + page: PageControllerBase; + sectionState: { [key: string]: any }; + fullState: { [key: string]: any }; + }) { + const pagePath = `/${page.model.basePath}${page.path}`; + const returnPath = `${pagePath}${this.returnUrlParameter}`; + const model = this.model; + return function (component: FormComponent) { + let valueText = component.getDisplayStringFromState(sectionState); + + if ( + component.type === "FileUploadField" && + model.showFilenamesOnSummaryPage + ) { + valueText = + fullState.originalFilenames?.[component.name]?.originalFilename; + } + + return { + key: { + text: component.options.shortTitle ?? component.title, + }, + value: { + text: valueText || "Not supplied", + }, + actions: { + items: [ + { + text: "Change", + visuallyHiddenText: component.title, + href: returnPath, + }, + ], + }, + }; + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index 5a698f4f31..aebd997261 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -11,6 +11,7 @@ import { RepeatingFieldPageController } from "./RepeatingFieldPageController"; import { Page } from "@xgovformbuilder/model"; import { UploadPageController } from "server/plugins/engine/pageControllers/UploadPageController"; import { MultiStartPageController } from "server/plugins/engine/pageControllers/MultiStartPageController"; +import { NonSubmittingSummaryPageController } from "src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController"; const PageControllers = { DobPageController, @@ -23,6 +24,7 @@ const PageControllers = { RepeatingFieldPageController, UploadPageController, MultiStartPageController, + NonSubmittingSummaryPageController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index d497799fd7..86c51503cd 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -6,3 +6,4 @@ export { StartPageController } from "./StartPageController"; export { SummaryPageController } from "./SummaryPageController"; export { PageControllerBase } from "./PageControllerBase"; export { getPageController, controllerNameFromPath } from "./helpers"; +export { NonSubmittingSummaryPageController } from "./NonSubmittingSummaryPageController"; diff --git a/runner/src/server/views/non-submitting-summary.html b/runner/src/server/views/non-submitting-summary.html new file mode 100644 index 0000000000..b4d954ab72 --- /dev/null +++ b/runner/src/server/views/non-submitting-summary.html @@ -0,0 +1,45 @@ +{% from "partials/summary-detail.html" import summaryDetail %} + +{% from "components/checkboxes/macro.njk" import govukCheckboxes %} +{% from "summary-list/macro.njk" import govukSummaryList %} +{% extends 'layout.html' %} + +{% block content %} + {% include "partials/heading.html" %} + + {% if customText.insetText %} +
+ {{ customText.insetText | safe }} +
+ {% endif %} + +
+
+ +
+
+

+ {{ customText.cardTitle | safe }} +

+
+
+ {% for list in summaryLists %} + {{ govukSummaryList(list) }} + {% endfor %} +
+
+ {% if customText.details %} +

+ {{ customText.details | safe }} +

+ {% endif %} + + + + +
+ +
+{% endblock %} \ No newline at end of file From d55769586a1738f5c027ce16730f67e1043c4f3d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 16 Jan 2025 11:35:48 +0000 Subject: [PATCH 027/403] Add back in salesforce url configuration --- runner/src/server/forms/ReportAnOutbreak.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 6a1046eab6..b90e3153a9 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -4055,6 +4055,16 @@ } ], "fees": [], + "outputs": [ + { + "name": "WEBHOOOK", + "title": "CareOBRA SalesForce", + "type": "webhook", + "outputConfiguration": { + "url": "${Webhook.URL}" + } + } + ], "version": 2, "skipSummary": false, "declaration": "
\n

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.
\n

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth

\n\n", From e1ccfad921b65d4cb543fa315418b0101fc4b72d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 16 Jan 2025 11:41:54 +0000 Subject: [PATCH 028/403] add in sessionCookiePassword and redis config --- runner/config/default.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 4ace77fc8a..08dfa9e00a 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - // sessionCookiePassword: "${SessionCookies.Password}", - // redisHost: "${Redis.Host}", - // redisPort: 6379, - // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - // redisTls: true, //run in TLS mode + sessionCookiePassword: "${SessionCookies.Password}", + redisHost: "${Redis.Host}", + redisPort: 6379, + redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + redisTls: true, //run in TLS mode /** * SSL From 50f0282339103f0ec289f3ef3d4d9a8e28be89d1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:04:58 +0000 Subject: [PATCH 029/403] Fix sending report --- runner/config/default.js | 10 +++++----- runner/src/server/forms/ReportAnOutbreak.json | 6 +----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 08dfa9e00a..4ace77fc8a 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - sessionCookiePassword: "${SessionCookies.Password}", - redisHost: "${Redis.Host}", - redisPort: 6379, - redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - redisTls: true, //run in TLS mode + // sessionCookiePassword: "${SessionCookies.Password}", + // redisHost: "${Redis.Host}", + // redisPort: 6379, + // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + // redisTls: true, //run in TLS mode /** * SSL diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b90e3153a9..be13f9de56 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2198,11 +2198,7 @@ "schema": {} } ], - "next": [ - { - "path": "/reportSent" - } - ] + "next": [] }, { "path": "/reportSent", From bfaa37883219e78950e127946f36324bc412ce0d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:25:47 +0000 Subject: [PATCH 030/403] Fix duplicate question in service-users-master --- runner/src/server/forms/ReportAnOutbreak.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index be13f9de56..ac7774f13b 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1177,18 +1177,6 @@ "min": 0 } }, - { - "type": "NumberField", - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, { "type": "NumberField", "name": "ServiceUsersFluSwabTest", From eca2fe6f12bd9c4504a8933b08823cdc62e6530d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 17 Jan 2025 10:44:32 +0000 Subject: [PATCH 031/403] add back in redis and sessionCookiePassword --- runner/config/default.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 4ace77fc8a..08dfa9e00a 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - // sessionCookiePassword: "${SessionCookies.Password}", - // redisHost: "${Redis.Host}", - // redisPort: 6379, - // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - // redisTls: true, //run in TLS mode + sessionCookiePassword: "${SessionCookies.Password}", + redisHost: "${Redis.Host}", + redisPort: 6379, + redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + redisTls: true, //run in TLS mode /** * SSL From b0af671fe11e66b8678f1bf9e61d7a6c32f7f1f0 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 17 Jan 2025 10:52:27 +0000 Subject: [PATCH 032/403] Add functionality for mid-way summary page --- .../NonSubmittingSummaryPageController.ts | 1 + .../server/views/non-submitting-summary.html | 23 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts index 85f0d04d04..4d88664c0d 100644 --- a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts @@ -103,6 +103,7 @@ export class NonSubmittingSummaryPageController extends PageController { ); return { + page: this, pageTitle: this.title, sectionTitle: this.section?.title, backLink: progress[progress.length - 1] ?? this.backLinkFallback, diff --git a/runner/src/server/views/non-submitting-summary.html b/runner/src/server/views/non-submitting-summary.html index b4d954ab72..e60463d000 100644 --- a/runner/src/server/views/non-submitting-summary.html +++ b/runner/src/server/views/non-submitting-summary.html @@ -16,29 +16,46 @@
+ {% for list in summaryLists %}

- {{ customText.cardTitle | safe }} + {{list.sectionTitle}}

- {% for list in summaryLists %} {{ govukSummaryList(list) }} - {% endfor %}
+ + {% endfor %} + + + {% if customText.details %}

{{ customText.details | safe }}

{% endif %} + {% if page.hasNext %} +
+ +
+ + + {% else %} +
+ {% endif %} + +
From 26f2d49906607804e9166d3f8c587e64842f40e0 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:02:31 +0000 Subject: [PATCH 033/403] CAR-179 change shortTitle to summaryTitle --- model/src/components/types.ts | 2 +- .../pageControllers/NonSubmittingSummaryPageController.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/model/src/components/types.ts b/model/src/components/types.ts index 7a4a333763..cb593a4813 100644 --- a/model/src/components/types.ts +++ b/model/src/components/types.ts @@ -132,7 +132,7 @@ interface ListFieldBase { allowPrePopulationOverwrite?: boolean; disableChangingFromSummary?: boolean; customValidationMessages?: Record; - shortTitle?: string; + summaryTitle?: string; }; list: string; schema: {}; diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts index 4d88664c0d..8698d3e5b2 100644 --- a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts @@ -139,7 +139,7 @@ export class NonSubmittingSummaryPageController extends PageController { return { key: { - text: component.options.shortTitle ?? component.title, + text: component.options.summaryTitle ?? component.title, }, value: { text: valueText || "Not supplied", From 60d01a0fea412c723d5b66f7c002bb676b24eedc Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:57:49 +0000 Subject: [PATCH 034/403] NonSubmittingSummaryPageController unit tests --- ...NonSubmittingSummaryPageController.test.ts | 205 ++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts diff --git a/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts b/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts new file mode 100644 index 0000000000..e00d99d4f7 --- /dev/null +++ b/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts @@ -0,0 +1,205 @@ +import * as Code from "@hapi/code"; +import * as Lab from "@hapi/lab"; +import { FormModel } from "server/plugins/engine/models"; +import { NonSubmittingSummaryPageController } from "server/plugins/engine/pageControllers/NonSubmittingSummaryPageController"; + +const { expect } = Code; +const lab = Lab.script(); +exports.lab = lab; +const { describe, it, beforeEach } = lab; + +describe("NonSubmittingSummaryPageController", () => { + let controller; + let mockModel; + let mockPageDef; + let mockRequest; + let mockH; + let mockCacheService; + + beforeEach(() => { + const formDef = { + pages: [ + { + path: "/page1", + title: "Page 1", + section: "section1", + components: [], + }, + ], + sections: [ + { name: "section1", title: "Section 1", hideTitle: false }, + { name: "section2", title: "Section 2", hideTitle: true }, + ], + startPage: "/page1", + lists: [], + conditions: [], + name: "Test Form", + }; + + mockModel = { + options: { + basePath: "test-form", + }, + name: "Test Form", + conditions: [], + lists: [], + sections: [ + { name: "section1", title: "Section 1", hideTitle: false }, + { name: "section2", title: "Section 2", hideTitle: true }, + ], + pages: [ + { + path: "/page1", + title: "Page 1", + section: "section1", + components: [], + }, + ], + getRelevantPages: () => ({ + relevantPages: [ + { + path: "/page1", + title: "Page 1", + section: { name: "section1" }, + components: { + formItems: [ + { + name: "field1", + title: "Field 1", + type: "TextField", + options: { summaryTitle: "F1" }, + getDisplayStringFromState: (state) => state.field1, + }, + ], + }, + }, + ], + }), + showFilenamesOnSummaryPage: true, + def: formDef, + }; + + mockPageDef = { + path: "/summary", + title: "Summary Page", + section: "section1", + controller: "NonSubmittingSummaryPageController", + name: "summary-page", + components: [], + next: [], + options: { + customText: { + title: "Custom Title", + }, + }, + }; + + mockCacheService = { + getState: () => + Promise.resolve({ + section1: { field1: "test value" }, + progress: ["/previous-page"], + originalFilenames: { + field1: { originalFilename: "test.pdf" }, + }, + }), + }; + + mockRequest = { + services: () => ({ cacheService: mockCacheService }), + yar: { + set: () => {}, + }, + }; + + mockH = { + view: (template, data) => ({ template, data }), + redirect: (path) => path, + continue: Symbol("continue"), + }; + + controller = new NonSubmittingSummaryPageController( + new FormModel(formDef, {}), + mockPageDef + ); + }); + + describe("constructor", () => { + it("should initialize with default options when none provided", () => { + const controllerNoOptions = new NonSubmittingSummaryPageController( + new FormModel(mockModel.def, {}), + { ...mockPageDef, options: undefined } + ); + + expect(controllerNoOptions.options).to.equal({ + customText: {}, + }); + }); + }); + + describe("makePostRouteHandler", () => { + it("should return a function that redirects to the next page", async () => { + const handler = controller.makePostRouteHandler(); + const result = await handler(mockRequest, mockH); + + expect(result).to.be.a.string(); + }); + }); + + describe("postRouteOptions", () => { + it("should return options with onPreHandler that continues", async () => { + const options = controller.postRouteOptions; + const result = await options.ext.onPreHandler.method(mockRequest, mockH); + + expect(result).to.equal(mockH.continue); + }); + }); + + describe("summaryViewModel", () => { + it("should generate correct view model with sections and rows", async () => { + const viewModel = await controller.summaryViewModel(mockRequest); + + expect(viewModel.summaryLists).to.be.an.array(); + expect(viewModel.customText).to.equal(mockPageDef.options.customText); + }); + + it("should handle hidden section titles", async () => { + mockModel.sections[0].hideTitle = true; + const viewModel = await controller.summaryViewModel(mockRequest); + + expect(viewModel.summaryLists).to.be.an.array(); + }); + }); + + describe("formItemsToRowByPage", () => { + it("should transform form items to summary rows", () => { + const page = { + path: "/page1", + model: mockModel, + components: { + formItems: [], + }, + }; + + const component = { + name: "field1", + title: "Field 1", + type: "TextField", + options: { summaryTitle: "F1" }, + getDisplayStringFromState: (state) => state.field1, + }; + + const toRow = controller.formItemsToRowByPage({ + page, + sectionState: { field1: "test value" }, + fullState: {}, + }); + + const row = toRow(component); + + expect(row.key.text).to.equal("F1"); + expect(row.value.text).to.equal("test value"); + expect(row.actions.items[0].text).to.equal("Change"); + }); + }); +}); From 691c6f8cc413c895a584a9ee9dbc09669774292c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:14:48 +0000 Subject: [PATCH 035/403] modify to allow customising section titles on the Mid-way summary and do not report pages --- model/src/data-model/types.ts | 2 ++ model/src/schema/schema.ts | 2 ++ .../NonSubmittingSummaryPageController.ts | 23 +++++++++++++++---- .../pageControllers/PageControllerBase.ts | 6 +++++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index adbfedfc94..fd4191ac36 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -15,6 +15,8 @@ export interface Page { controller: string; components?: ComponentDef[]; section?: string; // the section ID + sectionForSummaryPages?: string; + sectionForMultiSummaryPages?: string; next?: { path: string; condition?: string }[]; } diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index ec71847a9d..220b5430af 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -113,6 +113,8 @@ const pageSchema = joi.object().keys({ path: joi.string().required().disallow("/status"), title: localisedString, section: joi.string(), + sectionForSummaryPages: joi.string(), + sectionForMultiSummaryPages: joi.string(), controller: joi.string(), components: joi.array().items(componentSchema), next: joi.array().items(nextSchema), diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts index 8698d3e5b2..10c158f891 100644 --- a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts @@ -72,9 +72,24 @@ export class NonSubmittingSummaryPageController extends PageController { const { relevantPages } = this.model.getRelevantPages(state); const rowsBySection = relevantPages.reduce((prev, page) => { - const sectionName = page.section?.name; - const section = prev[sectionName] ?? []; - let sectionState = sectionName ? state[sectionName] || {} : state; + let displaySectionName; + // if we're on multi summary do X + if (this.options?.multiSummary) { + // Use sectionForMultiSummaryPages, then sectionForSummaryPages for grouping if available, otherwise use section name + displaySectionName = + page.sectionForMultiSummaryPages || page.section?.name; + } else { + // Use sectionForSummaryPages for grouping if available, otherwise use section name + displaySectionName = page.sectionForSummaryPages || page.section?.name; + } + + // Always use section name for state access + const stateSectionName = page.section?.name; + + const section = prev[displaySectionName] ?? []; + let sectionState = stateSectionName + ? state[stateSectionName] || {} + : state; const toRow = this.formItemsToRowByPage({ page, @@ -84,7 +99,7 @@ export class NonSubmittingSummaryPageController extends PageController { section.push(...page.components.formItems.map(toRow)); - prev[sectionName] = section; + prev[displaySectionName] = section; return prev; }, {}); diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 71a6a5d236..15f97fcc95 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -53,6 +53,8 @@ export class PageControllerBase { condition: any; // TODO repeatField: any; // TODO section: any; // TODO + sectionForSummaryPages: any; + sectionForMultiSummaryPages: any; components: ComponentCollection; hasFormComponents: boolean; hasConditionalFormComponents: boolean; @@ -79,6 +81,9 @@ export class PageControllerBase { (section) => section.name === pageDef.section ); + this.sectionForSummaryPages = pageDef.sectionForSummaryPages; + this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; + // Components collection const components = new ComponentCollection(pageDef.components, model); const conditionalFormComponents = components.formItems.filter( @@ -261,6 +266,7 @@ export class PageControllerBase { if (nextLink?.redirect) { return nextLink; } + console.log(nextLink?.page); return nextLink?.page ?? defaultLink?.page; } From 41b6afb93455f3a3e59a6676247a62859d859e90 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:36:02 +0000 Subject: [PATCH 036/403] remove console log --- .../server/plugins/engine/pageControllers/PageControllerBase.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 15f97fcc95..7d1d9dd9be 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -266,7 +266,6 @@ export class PageControllerBase { if (nextLink?.redirect) { return nextLink; } - console.log(nextLink?.page); return nextLink?.page ?? defaultLink?.page; } From 5370fb29ccf286a3dfed17cf219719e1dd9015f9 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:37:10 +0000 Subject: [PATCH 037/403] Remove comment --- .../engine/pageControllers/NonSubmittingSummaryPageController.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts index 10c158f891..a29d619fbd 100644 --- a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts @@ -73,7 +73,6 @@ export class NonSubmittingSummaryPageController extends PageController { const rowsBySection = relevantPages.reduce((prev, page) => { let displaySectionName; - // if we're on multi summary do X if (this.options?.multiSummary) { // Use sectionForMultiSummaryPages, then sectionForSummaryPages for grouping if available, otherwise use section name displaySectionName = From 5054992a8e31d70e3dc05cbbce34848dba113075 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:36:30 +0000 Subject: [PATCH 038/403] Updating WIP of ReportAnOutbreak for Mid way summaries and Do not reports --- runner/src/server/forms/ReportAnOutbreak.json | 519 +++++++++++++++++- 1 file changed, 499 insertions(+), 20 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index ac7774f13b..2f0a55eb4c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -31,10 +31,14 @@ "path": "/setting", "title": "What type of adult social care do you provide?", "section": "YourSetting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "CareSettingType", - "options": {}, + "options": { + "summaryTitle": "Your setting" + }, "type": "RadiosField", "nameHasError": false, "title": "What type of adult social care do you provide?", @@ -55,10 +59,14 @@ "path": "/positive-ari", "title": "Do you have any positive test results for an acute respiratory infection?", "section": "InfectionsYouAreReporting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "PositiveARI", - "options": {}, + "options": { + "summaryTitle": "Positive test result" + }, "type": "YesNoField", "nameHasError": false, "title": "Do you have any positive test results for an acute respiratory infection?", @@ -74,6 +82,7 @@ "path": "/2-or-more-ari", "condition": "PositiveARI:No" }, + { "path": "/which-ari" } @@ -83,10 +92,14 @@ "path": "/which-ari", "title": "Which acute respiratory infections do you have a positive test result for?", "section": "InfectionsYouAreReporting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "WhichARI", - "options": {}, + "options": { + "summaryTitle": "Infection" + }, "type": "CheckboxesField", "nameHasError": false, "title": "Which acute respiratory infections do you have a positive test result for? ", @@ -115,6 +128,8 @@ "path": "/2-or-more-covid", "title": "Are you reporting 2 or more cases?", "section": "InfectionsYouAreReporting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { "type": "Para", @@ -122,9 +137,11 @@ }, { "name": "TwoOrMoreCovid", - "options": {}, "type": "YesNoField", "nameHasError": false, + "options": { + "summaryTitle": "2 or more cases" + }, "title": " ", "values": { "type": "listRef" @@ -145,6 +162,7 @@ "path": "/2-or-more-covid-descriptive", "title": "Are you reporting 2 or more cases of COVID-19?", "section": "InfectionsYouAreReporting", + "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { "type": "Para", @@ -152,7 +170,9 @@ }, { "name": "TwoOrMoreCovid", - "options": {}, + "options": { + "summaryTitle": "2 or more cases" + }, "type": "YesNoField", "nameHasError": false, "title": " ", @@ -163,7 +183,7 @@ ], "next": [ { - "path": "/do-not-need-to-report", + "path": "/2-or-more-cases-not-covid-or-flu", "condition": "TwoOrMoreCovid:No" }, { @@ -175,6 +195,8 @@ "path": "/2-or-more-covid-details", "title": "Acute respiratory infections in your setting", "section": "InfectionsYouAreReporting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { "type": "Para", @@ -182,7 +204,9 @@ }, { "name": "TwoOrMoreCovid5days", - "options": {}, + "options": { + "summaryTitle": "Symptoms started within 5 days of each other" + }, "type": "RadiosField", "nameHasError": false, "title": "Did symptoms in 2 or more cases start within 5 days of each other?", @@ -193,7 +217,9 @@ }, { "name": "TwoOrMoreCovidSpread", - "options": {}, + "options": { + "summaryTitle": "The cases are linked by spread" + }, "type": "RadiosField", "nameHasError": false, "title": "Is it possible that at least 2 of the cases are linked by spread in your setting?​", @@ -225,10 +251,14 @@ "path": "/2-or-more-ari", "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "section": "InfectionYouAreReporting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { "name": "TwoOrMoreARI", - "options": {}, + "options": { + "summaryTitle": "2 or more cases" + }, "type": "YesNoField", "nameHasError": false, "title": "Are you reporting 2 or more cases of an acute respiratory infection?", @@ -251,16 +281,41 @@ "path": "/do-not-need-to-report", "title": "You do not need to report", "section": "InfectionsYouAreReporting", + "controller": "NonSubmittingSummaryPageController", + "options": { + "customText": { + "insetText": "Based on your answers, you do not need to report this acute respiratory infection.", + "details": "

You only need to report:

  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

Read guidance on infection prevention and control in adult social care settings.

" + } + }, + "components": [] + }, + { + "path": "/do-not-need-to-report-multiple", + "title": "You do not need to report", + "section": "InfectionsYouAreReporting", + "controller": "NonSubmittingSummaryPageController", + "options": { + "multiSummary": true, + "customText": { + "insetText": "Based on your answers, you do not need to report these acute respiratory infections.", + "details": "

You only need to report:

  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

Read guidance on infection prevention and control in adult social care settings.

" + } + }, "components": [] }, { "path": "/2-or-more-cases-not-covid-or-flu", "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", "section": "InfectionYouAreReporting", + "sectionForSummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "OtherInYourSetting", "components": [ { "name": "TwoOrMoreCasesNotCovidFlu", - "options": {}, + "options": { + "summaryTitle": "2 or more cases" + }, "type": "YesNoField", "nameHasError": false, "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", @@ -271,33 +326,78 @@ } ], "next": [ + { + "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "path": "/do-not-need-to-report-multiple" + }, + { + "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "path": "/do-not-need-to-report-multiple" + }, { "condition": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "path": "/mid-way-summary" + "path": "/mid-way-summary-covid-no-other-yes" }, { - "condition": "TwoOrMoreCasesNotCovidFlu:NO", - "path": "/do-not-need-to-report" + "condition": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "path": "/mid-way-summary-covid-yes-other-no" }, { + "condition": "TwoOrMoreCasesNotCovidFlu:YES", "path": "/ari-infection-type" + }, + { + "path": "/do-not-need-to-report" } ] }, { "path": "/mid-way-summary", - "title": "Mid-way summary", + "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", + "controller": "NonSubmittingSummaryPageController", + "options": { + "multiSummary": true + }, + "components": [] + }, + { + "path": "/mid-way-summary-covid-yes-other-no", + "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", + "controller": "NonSubmittingSummaryPageController", + "options": { + "multiSummary": true, + "customText": { + "insetText": "

Based on your answers:

  • you need to report the cases of COVID-19
  • you do not need to report the case of other respiratory infection

" + } + }, + "components": [] + }, + { + "path": "/mid-way-summary-covid-no-other-yes", + "title": "Check your answers before continuing", "section": "InfectionsYouAreReporting", + "controller": "NonSubmittingSummaryPageController", + "options": { + "multiSummary": true, + "customText": { + "insetText": "

Based on your answers:

  • you need to report the cases of COVID-19
  • you do not need to report the case of other respiratory infection

" + } + }, "components": [] }, { "path": "/ari-infection-type", "title": "What infection are you reporting?", "section": "InfectionYouAreReporting", + "sectionForMultiSummaryPages": "OtherInYourSetting", "components": [ { "name": "ARIInfectionType", - "options": {}, + "options": { + "summaryTitle": "Infection type" + }, "type": "CheckboxesField", "nameHasError": false, "title": "What infection are you reporting?", @@ -309,6 +409,10 @@ } ], "next": [ + { + "condition": "WhichARI:COVID19ANDOTHER", + "path": "/mid-way-summary" + }, { "path": "/ari-confirmed-cases-setting" } @@ -376,6 +480,126 @@ } ] }, + { + "path": "/service-users-ari-adenovirus", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersAdenovirus", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersSymptomsNotTested", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-adenovirus", + "condition": "ARIServiceOrStaff:Staff" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-adenovirus", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffAdenovirus", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffSymptomsNotTested", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "StaffTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, { "path": "/service-users-ari-unknown", "title": "Service users: number of cases", @@ -2583,6 +2807,18 @@ } ], "sections": [ + { + "name": "AcuteInfections", + "title": "Acute respiratory infections in your setting" + }, + { + "name": "Covid19InYourSetting", + "title": "COVID-19 in your setting" + }, + { + "name": "OtherInYourSetting", + "title": "Other infections in your setting" + }, { "name": "InfectionYouAreReporting", "title": "Infection you are reporting" @@ -2851,10 +3087,231 @@ "value": "false", "display": "false" } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "value": { + "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of COVID-19?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreARI", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "value": { + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of COVID-19?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "value": { + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", + "type": "RadiosField", + "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } } ] } }, + { "displayName": "WhichARI:COVID19", "name": "WhichARI:COVID19", @@ -3593,6 +4050,28 @@ ] } }, + { + "displayName": "WhichOtherARI:Adenovirus", + "name": "WhichOtherARI:Adenovirus", + "value": { + "name": "WhichOtherARI:Adenovirus", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + } + ] + } + }, { "displayName": "ReportCovid:No", "name": "ReportCovid:No", @@ -3630,10 +4109,10 @@ } }, { - "displayName": "TwoOrMoreCasesNotCovidFlu:NO", - "name": "TwoOrMoreCasesNotCovidFlu:NO", + "displayName": "TwoOrMoreCasesNotCovidFlu:YES", + "name": "TwoOrMoreCasesNotCovidFlu:YES", "value": { - "name": "TwoOrMoreCasesNotCovidFlu:NO", + "name": "TwoOrMoreCasesNotCovidFlu:YES", "conditions": [ { "field": { @@ -3644,8 +4123,8 @@ "operator": "is", "value": { "type": "Value", - "value": "false", - "display": "false" + "value": "true", + "display": "true" } } ] From 525a332f391b8de586a0655e8ad38c6c396c14c2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:03:07 +0000 Subject: [PATCH 039/403] edit comment --- .../pageControllers/NonSubmittingSummaryPageController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts index a29d619fbd..98f4be38bf 100644 --- a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts @@ -74,7 +74,7 @@ export class NonSubmittingSummaryPageController extends PageController { const rowsBySection = relevantPages.reduce((prev, page) => { let displaySectionName; if (this.options?.multiSummary) { - // Use sectionForMultiSummaryPages, then sectionForSummaryPages for grouping if available, otherwise use section name + // Use sectionForMultiSummaryPages, otherwise use section name displaySectionName = page.sectionForMultiSummaryPages || page.section?.name; } else { From 561281d20c2bb75f440e66dcc577b239324262ff Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:05:17 +0000 Subject: [PATCH 040/403] update unit tests --- ...NonSubmittingSummaryPageController.test.ts | 86 ++++++++++++++----- 1 file changed, 66 insertions(+), 20 deletions(-) diff --git a/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts b/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts index e00d99d4f7..34ab57622f 100644 --- a/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts +++ b/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts @@ -61,6 +61,7 @@ describe("NonSubmittingSummaryPageController", () => { path: "/page1", title: "Page 1", section: { name: "section1" }, + sectionForMultiSummaryPages: "Custom Section 1", components: { formItems: [ { @@ -73,6 +74,23 @@ describe("NonSubmittingSummaryPageController", () => { ], }, }, + { + path: "/page2", + title: "Page 2", + section: { name: "section2" }, + sectionForMultiSummaryPages: "Custom Section 2", + components: { + formItems: [ + { + name: "field2", + title: "Field 2", + type: "TextField", + options: { summaryTitle: "F2" }, + getDisplayStringFromState: (state) => state.field2, + }, + ], + }, + }, ], }), showFilenamesOnSummaryPage: true, @@ -97,10 +115,12 @@ describe("NonSubmittingSummaryPageController", () => { mockCacheService = { getState: () => Promise.resolve({ - section1: { field1: "test value" }, + section1: { field1: "test value 1" }, + section2: { field2: "test value 2" }, progress: ["/previous-page"], originalFilenames: { - field1: { originalFilename: "test.pdf" }, + field1: { originalFilename: "test1.pdf" }, + field2: { originalFilename: "test2.pdf" }, }, }), }; @@ -143,31 +163,57 @@ describe("NonSubmittingSummaryPageController", () => { const result = await handler(mockRequest, mockH); expect(result).to.be.a.string(); + expect(result).to.equal("/summary"); }); }); - describe("postRouteOptions", () => { - it("should return options with onPreHandler that continues", async () => { - const options = controller.postRouteOptions; - const result = await options.ext.onPreHandler.method(mockRequest, mockH); - - expect(result).to.equal(mockH.continue); - }); - }); + describe("summaryLists generation", () => { + it("should generate summaryLists based on rowsBySection and model.sections", () => { + // Mock data + const rowsBySection = { + section1: ["row1", "row2"], + section2: ["row3"], + }; - describe("summaryViewModel", () => { - it("should generate correct view model with sections and rows", async () => { - const viewModel = await controller.summaryViewModel(mockRequest); + const model = { + sections: [ + { name: "section1", title: "Section One", hideTitle: false }, + { name: "section2", title: "Section Two", hideTitle: true }, + { name: "section3", title: "Section Three", hideTitle: false }, + ], + }; - expect(viewModel.summaryLists).to.be.an.array(); - expect(viewModel.customText).to.equal(mockPageDef.options.customText); - }); + // The function to test + const summaryLists = Object.entries(rowsBySection).map( + ([section, rows]) => { + const modelSection = model.sections.find( + (mSection) => mSection.name === section + ); + + return { + sectionTitle: !modelSection?.hideTitle ? modelSection?.title : "", + section, + rows, + }; + } + ); - it("should handle hidden section titles", async () => { - mockModel.sections[0].hideTitle = true; - const viewModel = await controller.summaryViewModel(mockRequest); + // Expected result + const expectedSummaryLists = [ + { + sectionTitle: "Section One", + section: "section1", + rows: ["row1", "row2"], + }, + { + sectionTitle: "", // Title hidden because `hideTitle` is true + section: "section2", + rows: ["row3"], + }, + ]; - expect(viewModel.summaryLists).to.be.an.array(); + // Assertions + expect(summaryLists).to.equal(expectedSummaryLists); }); }); From b0aa8607242c73fb4050b162349c0ed49e33a221 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:49:47 +0000 Subject: [PATCH 041/403] latest form changes --- runner/config/default.js | 2 +- runner/lighthouse.js | 2 - runner/src/server/forms/ReportAnOutbreak.json | 495 +++++++++++++++--- 3 files changed, 433 insertions(+), 66 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 08dfa9e00a..afcd11e52f 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -56,7 +56,7 @@ module.exports = { */ serviceUrl: "http://localhost:3009", //This is used for redirects back to the runner. serviceName: "Webforms", - serviceStartPage: "", + serviceStartPage: "/ReportAnOutbreak/setting", privacyPolicyUrl: "", feedbackLink: "#", // Used in your phase banner. Can be a URL or more commonly mailto mailto:feedback@department.gov.uk phaseTag: "beta", // Accepts "alpha" |"beta" | "" diff --git a/runner/lighthouse.js b/runner/lighthouse.js index 1bdffa649b..c2cee6699f 100644 --- a/runner/lighthouse.js +++ b/runner/lighthouse.js @@ -40,8 +40,6 @@ Object.keys(requiredScores).forEach((category) => { }); console.log(ciStdout.join("\n")); -console.log("Field value:", formData.PositiveARI); -console.log("Condition check:", formData.PositiveARI === true); if (!success) { process.exit(1); diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 2f0a55eb4c..ea8028ee6a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -413,6 +413,10 @@ "condition": "WhichARI:COVID19ANDOTHER", "path": "/mid-way-summary" }, + { + "condition": "WhichARI:Other", + "path": "/other-ari-confirmed-cases-setting" + }, { "path": "/ari-confirmed-cases-setting" } @@ -423,16 +427,6 @@ "title": "Service users: number of cases", "section": "InfectionsInYourSetting", "components": [ - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - }, { "name": "ServiceUsersSymptomsNotTested", "type": "NumberField", @@ -482,7 +476,7 @@ }, { "path": "/service-users-ari-adenovirus", - "title": "Service users: number of cases", + "title": "Service users: number of adenovirus cases", "section": "InfectionsInYourSetting", "components": [ { @@ -494,38 +488,68 @@ "min": 0, "max": 999 } - }, + } + ], + "next": [ { - "name": "ServiceUsersSymptomsNotTested", + "path": "/service-users-ari-hmpv" + } + ] + }, + { + "path": "/service-users-ari-hmpv", + "title": "Service users: number of human Metapneumovirus (hMPV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersHmpv", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 } - }, + } + ], + "next": [ { - "name": "ServiceUsersTestedCovid", + "path": "/service-users-ari-parainfluenza" + } + ] + }, + { + "path": "/service-users-ari-parainfluenza", + "title": "Service users: number of parainfluenza cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersParainfluenza", "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", + "title": "How many service users have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 - }, - "options": { - "required": false } - }, + } + ], + "next": [ { - "name": "ServiceUsersTestedFlu", + "path": "/service-users-ari-rsv" + } + ] + }, + { + "path": "/service-users-ari-rsv", + "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersRSV", "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, + "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 @@ -534,17 +558,35 @@ ], "next": [ { - "path": "/staff-ari-adenovirus", - "condition": "ARIServiceOrStaff:Staff" - }, + "path": "/service-users-other" + } + ] + }, + { + "path": "/service-users-other", + "title": "Service users: number of other acute respiratory infection cases", + "section": "InfectionsInYourSetting", + "components": [ { - "path": "/severity-of-illness" + "name": "ServiceUsersOtherARI", + "type": "NumberField", + "title": "How many service users have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-adenovirus" } ] }, { "path": "/staff-ari-adenovirus", - "title": "Staff: number of cases", + "title": "Staff: number of adenovirus cases", "section": "InfectionsInYourSetting", "components": [ { @@ -556,38 +598,112 @@ "min": 0, "max": 999 } - }, + } + ], + "next": [ { - "name": "StaffSymptomsNotTested", + "path": "/staff-ari-hmpv" + } + ] + }, + { + "path": "/staff-ari-hmpv", + "title": "Staff: number of human Metapneumovirus (hMPV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffHmpv", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 } - }, + } + ], + "next": [ { - "name": "StaffTestedCovid", + "path": "/staff-ari-parainfluenza" + } + ] + }, + { + "path": "/staff-ari-parainfluenza", + "title": "Staff: number of parainfluenza cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffParainfluenza", "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", + "title": "How many staff have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 - }, - "options": { - "required": false } - }, + } + ], + "next": [ { - "name": "StaffTestedFlu", + "path": "/staff-ari-rsv" + } + ] + }, + { + "path": "/staff-ari-rsv", + "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffRSV", "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, + "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-rhinovirus" + } + ] + }, + { + "path": "/staff-ari-rhinovirus", + "title": "Staff: number of rhinovirus cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersRhinovirus", + "type": "NumberField", + "title": "How many service users have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-other" + } + ] + }, + { + "path": "/staff-other", + "title": "Staff: number of other acute respiratory infection cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffOtherARI", + "type": "NumberField", + "title": "How many staff have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, "max": 999 @@ -709,16 +825,6 @@ "title": "Staff: number of cases", "section": "InfectionsInYourSetting", "components": [ - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - }, { "name": "StaffSymptomsNotTested", "type": "NumberField", @@ -758,7 +864,7 @@ ], "next": [ { - "path": "/severity-of-illness" + "path": "/service-users-ari-adenovirus" } ] }, @@ -1141,6 +1247,53 @@ } ] }, + { + "path": "/other-ari-confirmed-cases-setting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "title": " ", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "required": true + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + } + ] + }, { "path": "/ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", @@ -2881,6 +3034,222 @@ } ], "conditions": [ + { + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Adenovirus", + "display": "Adenovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Parainfluenza", + "display": "Parainfluenza" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Rhinovirus", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Other acute respiratory infection", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, { "displayName": "PositiveARI:No", "name": "PositiveARI:No", From ad3175095d45f86cc6bb31aeeb6272e4b1c08048 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:53:56 +0000 Subject: [PATCH 042/403] revert 500 page --- runner/src/server/views/500.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/views/500.html b/runner/src/server/views/500.html index 7ce1c50906..9857e09ec8 100755 --- a/runner/src/server/views/500.html +++ b/runner/src/server/views/500.html @@ -4,9 +4,9 @@
-
-

Sorry, there is a problem with Report an outbreak

-

You need to report the outbreak by telephone to your local UKHSA health protection team.

+
+

Sorry, there is a problem with the service

+

Contact your closest consulate.

From 7d76d75606d6f93a8455a925933ead4bc7d15d90 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:54:53 +0000 Subject: [PATCH 043/403] revert 500 page --- runner/src/server/views/500.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/views/500.html b/runner/src/server/views/500.html index 9857e09ec8..d57926c5c2 100755 --- a/runner/src/server/views/500.html +++ b/runner/src/server/views/500.html @@ -4,7 +4,7 @@
-
+

Sorry, there is a problem with the service

Contact your closest consulate.

From 21518ab6e7b026a55620ed41996aadac169b5172 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 27 Jan 2025 16:09:50 +0000 Subject: [PATCH 044/403] rename NonSubmittingSummaryPage to CheckpointSummaryPage and sectionForSummaryPages to sectionForExitJourneySummaryPages --- designer/client/page-create.js | 2 +- designer/client/page-edit.js | 2 +- model/src/data-model/types.ts | 6 +- model/src/schema/schema.ts | 2 +- runner/src/server/forms/ReportAnOutbreak.json | 5244 +++++++++++++++++ ....ts => CheckpointSummaryPageController.ts} | 13 +- .../pageControllers/PageControllerBase.ts | 5 +- .../plugins/engine/pageControllers/helpers.ts | 4 +- .../plugins/engine/pageControllers/index.ts | 2 +- ...g-summary.html => checkpoint-summary.html} | 0 ...> CheckpointSummaryPageController.test.ts} | 10 +- 11 files changed, 5268 insertions(+), 22 deletions(-) create mode 100644 runner/src/server/forms/ReportAnOutbreak.json rename runner/src/server/plugins/engine/pageControllers/{NonSubmittingSummaryPageController.ts => CheckpointSummaryPageController.ts} (91%) rename runner/src/server/views/{non-submitting-summary.html => checkpoint-summary.html} (100%) rename runner/test/cases/server/plugins/engine/pageControllers/{NonSubmittingSummaryPageController.test.ts => CheckpointSummaryPageController.test.ts} (94%) diff --git a/designer/client/page-create.js b/designer/client/page-create.js index e441c6b7a6..ed61b4b4e8 100644 --- a/designer/client/page-create.js +++ b/designer/client/page-create.js @@ -206,7 +206,7 @@ class PageCreate extends React.Component { - diff --git a/designer/client/page-edit.js b/designer/client/page-edit.js index 55d953de42..8714b7edcc 100644 --- a/designer/client/page-edit.js +++ b/designer/client/page-edit.js @@ -235,7 +235,7 @@ export class PageEdit extends React.Component { - diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index fd4191ac36..cc6c2826f8 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -15,7 +15,7 @@ export interface Page { controller: string; components?: ComponentDef[]; section?: string; // the section ID - sectionForSummaryPages?: string; + sectionForExitJourneySummaryPages?: string; sectionForMultiSummaryPages?: string; next?: { path: string; condition?: string }[]; } @@ -33,8 +33,8 @@ export interface RepeatingFieldPage extends Page { }; }; } -export interface NonSubmittingSummaryPage extends Page { - controller: "NonSubmittingSummaryPageController"; +export interface CheckpointSummaryPage extends Page { + controller: "CheckpointSummaryPageController"; options: { customText: any; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 220b5430af..26b5407d4d 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -113,7 +113,7 @@ const pageSchema = joi.object().keys({ path: joi.string().required().disallow("/status"), title: localisedString, section: joi.string(), - sectionForSummaryPages: joi.string(), + sectionForExitJourneySummaryPages: joi.string(), sectionForMultiSummaryPages: joi.string(), controller: joi.string(), components: joi.array().items(componentSchema), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json new file mode 100644 index 0000000000..ababbef3fb --- /dev/null +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -0,0 +1,5244 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "path": "/start", + "title": "Report an outbreak of acute respiratory infection in an adult social care setting", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Applies to England

\n" + }, + { + "name": "nMOTry", + "options": {}, + "type": "Para", + "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

    \n
  • a new outbreak of an acute respiratory infection (ARI) - 2 or more people in your setting with symptom onset within 5 days of each other
  • \n
  • a single confirmed case of flu in your setting
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), or unknown respiratory infection including chest infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n
    \n
  • setting postcode
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
\n\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak or cluster of ARI that you've already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Do not use this service to report:

\n
    \n
  • single cases of COVID-19
  • \n
  • any infection other than acute respiratory infections
  • \n
\n

Read more on:

\n \n

Why you should report an outbreak

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team during working hours.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" + } + ], + "next": [ + { + "path": "/setting" + } + ], + "controller": "MultiStartPageController", + "showContinueButton": false + }, + { + "path": "/setting", + "title": "What type of adult social care do you provide?", + "section": "YourSetting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "name": "CareSettingType", + "options": { + "summaryTitle": "Your setting" + }, + "type": "RadiosField", + "nameHasError": false, + "title": "What type of adult social care do you provide?", + "list": "MpSRIP", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/positive-ari" + } + ] + }, + { + "path": "/positive-ari", + "title": "Do you have any positive test results for an acute respiratory infection?", + "section": "InfectionsYouAreReporting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "name": "PositiveARI", + "options": { + "summaryTitle": "Positive test result" + }, + "type": "YesNoField", + "nameHasError": false, + "title": "Do you have any positive test results for an acute respiratory infection?", + "hint": "The infection must have been confirmed by a test, for example a lateral flow test, flu swab test or a laboratory test.", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/2-or-more-ari", + "condition": "PositiveARI:No" + }, + + { + "path": "/which-ari" + } + ] + }, + { + "path": "/which-ari", + "title": "Which acute respiratory infections do you have a positive test result for?", + "section": "InfectionsYouAreReporting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "name": "WhichARI", + "options": { + "summaryTitle": "Infection" + }, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Which acute respiratory infections do you have a positive test result for? ", + "list": "InfectionTypes", + "hint": "You can select more than one option", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/2-or-more-covid-descriptive", + "condition": "WhichARI:COVID19ANDOTHER" + }, + { + "path": "/2-or-more-covid-descriptive", + "condition": "WhichARI:COVID19ANDFLU" + }, + { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, + { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, + { "path": "/2-or-more-cases-not-covid-or-flu" } + ] + }, + { + "path": "/2-or-more-covid", + "title": "Are you reporting 2 or more cases?", + "section": "InfectionsYouAreReporting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "TwoOrMoreCovid", + "type": "YesNoField", + "nameHasError": false, + "options": { + "summaryTitle": "2 or more cases" + }, + "title": " ", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "TwoOrMoreCovid:No" + }, + { + "path": "/2-or-more-covid-details" + } + ] + }, + { + "path": "/2-or-more-covid-descriptive", + "title": "Are you reporting 2 or more cases of COVID-19?", + "section": "InfectionsYouAreReporting", + "sectionForMultiSummaryPages": "Covid19InYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "TwoOrMoreCovid", + "options": { + "summaryTitle": "2 or more cases" + }, + "type": "YesNoField", + "nameHasError": false, + "title": " ", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/2-or-more-cases-not-covid-or-flu", + "condition": "TwoOrMoreCovid:No" + }, + { + "path": "/2-or-more-covid-details" + } + ] + }, + { + "path": "/2-or-more-covid-details", + "title": "Acute respiratory infections in your setting", + "section": "InfectionsYouAreReporting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "TwoOrMoreCovid5days", + "options": { + "summaryTitle": "Symptoms started within 5 days of each other" + }, + "type": "RadiosField", + "nameHasError": false, + "title": "Did symptoms in 2 or more cases start within 5 days of each other?", + "list": "YesNoSure", + "values": { + "type": "listRef" + } + }, + { + "name": "TwoOrMoreCovidSpread", + "options": { + "summaryTitle": "The cases are linked by spread" + }, + "type": "RadiosField", + "nameHasError": false, + "title": "Is it possible that at least 2 of the cases are linked by spread in your setting?​", + "list": "YesNoSure", + "values": { + "type": "listRef" + } + }, + { + "type": "Para", + "content": "

Read guidance on when cases may be linked by spread in the care setting (opens in a new tab).

" + } + ], + "next": [ + { + "path": "/2-or-more-cases-not-covid-or-flu", + "condition": "WhichARI:COVID19ANDOTHER" + }, + { + "path": "/do-not-need-to-report", + "condition": "ReportCovid:No" + }, + { + "path": "/ari-confirmed-cases-setting" + } + ] + }, + { + "path": "/2-or-more-ari", + "title": "Are you reporting 2 or more cases of an acute respiratory infection?", + "section": "InfectionYouAreReporting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", + "components": [ + { + "name": "TwoOrMoreARI", + "options": { + "summaryTitle": "2 or more cases" + }, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you reporting 2 or more cases of an acute respiratory infection?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "TwoOrMoreARI:No" + }, + { + "path": "/ari-unknown-cases-setting" + } + ] + }, + { + "path": "/do-not-need-to-report", + "title": "You do not need to report", + "section": "InfectionsYouAreReporting", + "controller": "CheckpointSummaryPageController", + "options": { + "customText": { + "insetText": "Based on your answers, you do not need to report this acute respiratory infection.", + "details": "

You only need to report:

  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

Read guidance on infection prevention and control in adult social care settings.

" + } + }, + "components": [] + }, + { + "path": "/do-not-need-to-report-multiple", + "title": "You do not need to report", + "section": "InfectionsYouAreReporting", + "controller": "CheckpointSummaryPageController", + "options": { + "multiSummary": true, + "customText": { + "insetText": "Based on your answers, you do not need to report these acute respiratory infections.", + "details": "

You only need to report:

  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

Read guidance on infection prevention and control in adult social care settings.

" + } + }, + "components": [] + }, + { + "path": "/2-or-more-cases-not-covid-or-flu", + "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "section": "InfectionYouAreReporting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "OtherInYourSetting", + "components": [ + { + "name": "TwoOrMoreCasesNotCovidFlu", + "options": { + "summaryTitle": "2 or more cases" + }, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "hint": "This includes viruses such as respiratory syncytial virus, rhinovirus, parainfluenza and chest infections", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "path": "/do-not-need-to-report-multiple" + }, + { + "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "path": "/do-not-need-to-report-multiple" + }, + { + "condition": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "path": "/mid-way-summary-covid-no-other-yes" + }, + { + "condition": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "path": "/mid-way-summary-covid-yes-other-no" + }, + { + "condition": "TwoOrMoreCasesNotCovidFlu:YES", + "path": "/ari-infection-type" + }, + { + "path": "/do-not-need-to-report" + } + ] + }, + { + "path": "/mid-way-summary", + "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", + "controller": "CheckpointSummaryPageController", + "options": { + "multiSummary": true + }, + "components": [] + }, + { + "path": "/mid-way-summary-covid-yes-other-no", + "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", + "controller": "CheckpointSummaryPageController", + "options": { + "multiSummary": true, + "customText": { + "insetText": "

Based on your answers:

  • you need to report the cases of COVID-19
  • you do not need to report the case of other respiratory infection

" + } + }, + "components": [] + }, + { + "path": "/mid-way-summary-covid-no-other-yes", + "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", + "controller": "CheckpointSummaryPageController", + "options": { + "multiSummary": true, + "customText": { + "insetText": "

Based on your answers:

  • you need to report the cases of COVID-19
  • you do not need to report the case of other respiratory infection

" + } + }, + "components": [] + }, + { + "path": "/ari-infection-type", + "title": "What infection are you reporting?", + "section": "InfectionYouAreReporting", + "sectionForMultiSummaryPages": "OtherInYourSetting", + "components": [ + { + "name": "ARIInfectionType", + "options": { + "summaryTitle": "Infection type" + }, + "type": "CheckboxesField", + "nameHasError": false, + "title": "What infection are you reporting?", + "hint": "You can select more than one option", + "list": "ARIInfectionType", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "condition": "WhichARI:COVID19ANDOTHER", + "path": "/mid-way-summary" + }, + { + "condition": "WhichARI:Other", + "path": "/other-ari-confirmed-cases-setting" + }, + { + "path": "/ari-confirmed-cases-setting" + } + ] + }, + { + "path": "/service-users-ari-confirmed", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersSymptomsNotTested", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-adenovirus", + "title": "Service users: number of adenovirus cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersAdenovirus", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-ari-hmpv", + "title": "Service users: number of human Metapneumovirus (hMPV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersHmpv", + "type": "NumberField", + "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-ari-parainfluenza", + "title": "Service users: number of parainfluenza cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersParainfluenza", + "type": "NumberField", + "title": "How many service users have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-ari-rsv", + "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersRSV", + "type": "NumberField", + "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-ari-rhinovirus", + "title": "Service users: number of rhinovirus cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersRhinovirus", + "type": "NumberField", + "title": "How many service users have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-other", + "title": "Service users: number of other acute respiratory infection cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersOtherARI", + "type": "NumberField", + "title": "How many service users have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/staff-ari-adenovirus", + "title": "Staff: number of adenovirus cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffAdenovirus", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/staff-ari-hmpv", + "title": "Staff: number of human Metapneumovirus (hMPV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffHmpv", + "type": "NumberField", + "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/staff-ari-parainfluenza", + "title": "Staff: number of parainfluenza cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffParainfluenza", + "type": "NumberField", + "title": "How many staff have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/staff-ari-rsv", + "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffRSV", + "type": "NumberField", + "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/staff-ari-rhinovirus", + "title": "Staff: number of rhinovirus cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffRhinovirus", + "type": "NumberField", + "title": "How many staff have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/staff-other", + "title": "Staff: number of other acute respiratory infection cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffOtherARI", + "type": "NumberField", + "title": "How many staff have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/service-users-ari-unknown", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection but have not been tested?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-unknown", + "condition": "ARIServiceOrStaff:Staff" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-unknown", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "name": "StaffSymptomsNotTested", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "StaffTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-confirmed", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "StaffSymptomsNotTested", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTestedCovid", + "type": "NumberField", + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "required": false + } + }, + { + "name": "StaffTestedFlu", + "type": "NumberField", + "title": "How many staff have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/service-users-ari-adenovirus" + } + ] + }, + { + "path": "/cases-of-flu", + "title": "How many cases are you reporting?", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "NumberOfCasesOfFlu", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many cases are you reporting?", + "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "list": "OneOrMore", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/single-case-of-flu", + "condition": "NumberOfCasesOfFlu:One" + }, + { + "path": "/ari-confirmed-cases-setting" + } + ] + }, + { + "path": "/single-case-of-flu", + "title": "Who has the case of flu?", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "SingleCaseOfFluServiceOrStaff", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "Who has the case of flu?", + "list": "ServiceOrStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/flu-severity", + "condition": "SingleCaseOfFluServiceOrStaff:ServiceUser" + }, + { + "path": "/vaccination" + } + ] + }, + { + "path": "/service-users-flu", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersFluSwabTest", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out" + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTested", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersChestInfectionCovid19", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0" + } + ], + "next": [ + { + "path": "/staff-flu", + "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff" + }, + { + "path": "/flu-severity-multiple-cases" + } + ] + }, + { + "path": "/staff-flu", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + + { + "name": "StaffFluSwabTest", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital." + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital
If none, enter 0" + }, + { + "name": "StaffSymptomsNotTested", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

This usually includes people who have a sudden onset of acute respiratory symptoms and fever

Include those who are currently in hospital
If none, enter 0" + }, + { + "name": "StaffChestInfectionCovid19", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0" + } + ], + "next": [ + { + "path": "/flu-severity-multiple-cases" + } + ] + }, + { + "path": "/symptom-onset-flu", + "title": "Symptom onset for the case of flu", + "section": "FluInYourSetting", + "components": [ + { + "name": "FluSymptomOnsetDate", + "options": {}, + "type": "DatePartsField", + "nameHasError": false, + "title": "When did symptoms start?", + "hint": "For example, 31 3 2024", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/vaccination" + } + ] + }, + { + "path": "/flu-severity", + "title": "Severity of the case of flu", + "section": "FluInYourSetting", + "components": [ + { + "name": "SingleCaseOfFluSeverityCalledGP", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Have you called the GP because of the severity of illness in this case?", + "values": { + "type": "listRef" + } + }, + { + "name": "SingleCaseOfFluSeverityHospitalised", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Has the person been hospitalised with the flu?", + "values": { + "type": "listRef" + } + }, + { + "name": "SingleCaseOfFluSeverityDeath", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Has the person died with flu in this case?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/symptom-onset-flu" + } + ] + }, + { + "path": "/vaccination", + "title": "Vaccination among your staff and service users", + "section": "Vaccination", + "components": [ + { + "name": "ServiceUsersCovid19Vaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "Service users: how many are up to date with the current COVID-19 vaccination schedule?", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersFluVaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "Service users: how many have had the flu vaccine for this current winter season?", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersRSVVaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "Service users: how many have had the respiratory syncytial virus (RSV) vaccine?", + "values": { + "type": "listRef" + } + }, + { + "name": "StaffCovid19Vaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "Staff: how many are up to date with the current COVID-19 vaccination schedule?", + "values": { + "type": "listRef" + } + }, + { + "name": "StaffFluVaccination", + "options": { + "required": false + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "Staff: how many have had the flu vaccine for this current winter season?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/ipc" + } + ] + }, + { + "path": "/ari-unknown-cases-setting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "title": " ", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "required": true + } + } + ], + "next": [ + { + "condition": "ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-ari-unknown" + }, + { + "path": "/staff-ari-unknown" + } + ] + }, + { + "path": "/other-ari-confirmed-cases-setting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "title": " ", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "required": true + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-unknown" + }, + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/ari-confirmed-cases-setting", + "title": "Who has an acute respiratory infection?", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "title": " ", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "required": true + } + } + ], + "next": [ + { + "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-master" + }, + { + "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "path": "/staff-master" + }, + { + "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-covid-flu" + }, + { + "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "path": "/staff-covid-flu" + }, + { + "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-covid-ari" + }, + { + "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "path": "/staff-covid-ari" + }, + { + "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-flu-ari" + }, + { + "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "path": "/staff-flu-ari" + }, + { + "path": "/service-users-flu", + "condition": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers" + }, + { + "path": "/staff-flu", + "condition": "WhichARI:Flu&ARIServiceOrStaff:Staff" + }, + { + "path": "/service-users-covid", + "condition": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers" + }, + { + "path": "/staff-covid", + "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff" + }, + { + "condition": "ARIServiceOrStaff:ServiceUsers", + "path": "/service-users-ari-confirmed" + }, + { + "path": "/staff-ari-cases" + } + ] + }, + { + "path": "/service-users-covid-ari", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersSymptomsNotTested", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersTestedFlu", + "type": "NumberField", + "title": "How many service users have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/staff-ari-cases", + "condition": "ARIServiceOrStaff:Both" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-covid-ari", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "StaffSymptomsNotTested", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "StaffTestedFlu", + "type": "NumberField", + "title": "How many staff have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-cases", + "title": "Staff: Number of cases", + "section": "Infections in your setting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "name": "StaffSymptomsNotTested", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "OtherARIStaffTestedCovid", + "type": "NumberField", + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + }, + { + "name": "OtherARIStaffTestedFlu", + "type": "NumberField", + "title": "How many staff have been tested for flu?", + "hint": "If none, enter 0", + "options": { + "required": false + }, + "schema": { + "min": 0, + "max": 200 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-master", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersFluSwabTest", + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersNotTested", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "path": "/staff-master" + } + ] + }, + { + "path": "/staff-master", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true, + "condition": "covid19" + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffFluSwabTest", + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {} + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out" + }, + { + "name": "StaffSymptomsNotTested", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out

If none, enter 0" + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/ipc", + "title": "Infection prevention and control (IPC) and outbreak management in your setting", + "section": "InfectionPreventionAndControl", + "components": [ + { + "name": "IPCPractices", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How often do you monitor staff infection prevention and control practices?", + "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", + "list": "IPCPractices", + "values": { + "type": "listRef" + } + }, + { + "name": "Issues", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "What issues do you currently need support with?", + "hint": "You can select more than one option", + "list": "Issues", + "values": { + "type": "listRef" + } + }, + { + "name": "AGPs", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Does your setting undertake aerosol generating procedures (AGPs)?", + "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", + "values": { + "type": "listRef" + } + }, + { + "name": "MediaInterest", + "options": { + "required": false + }, + "type": "YesNoField", + "nameHasError": false, + "title": "Are you aware of any media interest in this outbreak?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/agps", + "condition": "AGPs:yes" + }, + { + "path": "/agency-staff" + } + ] + }, + { + "path": "/flu-severity-multiple-cases", + "title": "Severity of flu or chest infection cases in this outbreak", + "section": "SeverityOfIllness", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + }, + { + "name": "SingleCaseOfFluSeverityCalledGPMultipleCases", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeverityAntibiotics", + "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", + "type": "NumberField", + "options": { + "required": false + } + }, + { + "name": "FluSeverityHospitalisedMultipleCases", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeverityDeathMultipleCases", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "values": { + "type": "listRef" + } + }, + { + "name": "FluSeveritySpecificArea", + "title": "Are the cases linked to a specific area of the setting?", + "type": "RadiosField", + "nameHasError": false, + "list": "FluSeveritySpecificArea", + "options": {}, + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/ari-unknown-cases-setting", + "condition": "WhichARI:Other" + }, + { + "path": "/symptom-onset" + } + ] + }, + { + "path": "/service-users-covid", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + } + ], + "next": [ + { + "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "path": "/staff-covid-cases" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-covid-flu", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "ServiceUsersFluSwabTest", + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out

If none, enter 0", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "path": "/staff-covid-flu" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-covid-flu", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffFluSwabTest", + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "StaffSymptomsNotTested", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-flu-ari", + "title": "Service users: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "ServiceUsersFluSwabTest", + "title": "How many service users have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersConfirmedARI", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many service users have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "ServiceUsersSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "ServiceUsersTestedCovid", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": {}, + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/staff-flu-ari", + "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-flu-ari", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "NumberField", + "name": "StaffFluSwabTest", + "title": "How many staff have flu confirmed by a positive swab test?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "StaffConfirmedARI", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": {}, + "options": {} + }, + { + "name": "StaffChestInfection", + "options": { + "required": false + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff have been diagnosed with a chest infection by a GP?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" + }, + { + "name": "StaffSymptomsNotTested", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "type": "NumberField", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": {}, + "options": {} + }, + { + "name": "StaffUsersTestedCovid", + "type": "NumberField", + "title": "How many staff have been tested for COVID-19?", + "hint": "If none, enter 0", + "schema": {}, + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/severity-of-illness", + "title": "Severity of illness in this outbreak", + "section": "SeverityOfIllness", + "components": [ + { + "name": "severityIntro", + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "SeverityGPCalls", + "type": "RadiosField", + "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityHospitalisations", + "type": "RadiosField", + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityDeaths", + "type": "RadiosField", + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + } + ], + "next": [ + { + "path": "/symptom-onset" + } + ] + }, + { + "path": "/symptom-onset", + "title": "Symptom onset in this outbreak", + "section": "SymptomStartDates", + "components": [ + { + "name": "introText1", + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "introText2", + "type": "Para", + "content": "If you do not know the exact date, give an estimate.", + "options": {} + }, + { + "name": "FirstCaseOnset", + "type": "DatePartsField", + "title": "When did symptoms start in the first case in this outbreak?", + "hint": "For example, 31 3 2025", + "options": { + "required": true + } + }, + { + "name": "MostRecentCaseOnset", + "type": "DatePartsField", + "title": "When did symptoms start in the most recent case in this outbreak?", + "hint": "For example, 31 3 2025", + "options": { + "required": false + } + } + ], + "next": [ + { + "path": "/vaccination" + } + ] + }, + { + "path": "/staff-covid-cases", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many staff have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffSymptomsNotTested", + "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "name": "FluSeveritySpecificArea", + "title": "Are the cases linked to a specific area of the setting?", + "type": "RadiosField", + "nameHasError": false, + "list": "FluSeveritySpecificArea", + "options": {}, + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/cases-of-flu", + "condition": "WhichARI:CovidAndFlu" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/agps", + "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "section": "InfectionPreventionAndControl", + "components": [ + { + "name": "FFP3Masks", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "list": "FFP3Masks", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/agency-staff" + } + ] + }, + { + "path": "/agency-staff", + "title": "Do you use agency staff or share staff with other care settings?", + "section": "Staff", + "components": [ + { + "name": "AgencyStaff", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Do you use agency staff or share staff with other care settings?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/setting-details", + "condition": "AgencyStaff:No" + }, + { + "path": "/additional-staff" + } + ] + }, + { + "path": "/additional-staff", + "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "section": "Staff", + "components": [ + { + "name": "AdditionalStaff", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "list": "AdditionalStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/setting-details" + } + ] + }, + { + "path": "/setting-details", + "title": "Setting details", + "section": "YourSetting", + "components": [ + { + "name": "SettingName", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Your setting name", + "hint": "The name of the setting where the cases are located, not the management company", + "values": { + "type": "listRef" + } + }, + { + "name": "SettingPostcode", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Your setting postcode", + "hint": "The postcode of the setting where the cases are located, not the management company.", + "values": { + "type": "listRef" + } + }, + { + "name": "HPT", + "options": { + "required": true, + "customValidationMessages": { + "string.empty": "Your local UKHSA health protection team is required", + "string.base": "Your local UKHSA health protection team is required" + } + }, + "type": "SelectField", + "title": "Your local UKHSA health protection team", + "list": "sjgMDe", + "nameHasError": false, + "schema": {}, + "values": { + "type": "listRef" + } + }, + { + "name": "nMOTry", + "options": {}, + "type": "Para", + "content": "\n Use your postcode to find your local health protection team (opens in a new tab)\n", + "schema": {} + }, + { + "name": "CQCRegistered", + "options": {}, + "type": "YesNoField", + "nameHasError": false, + "title": "Is your care setting registered with the Care Quality Commission (CQC)?", + "values": { + "type": "listRef" + } + }, + { + "name": "nMOTdlmry", + "options": {}, + "type": "Para", + "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab). The CQC location ID is listed on the ‘Registration details’ page for your care setting.", + "schema": {} + } + ], + "next": [ + { + "path": "/contact-details" + } + ] + }, + { + "path": "/contact-details", + "title": "Contact details", + "section": "YourSetting", + "components": [ + { + "name": "heading1", + "options": { + "required": false + }, + "type": "Para", + "content": "

Provide a contact who will be available to receive:

  • an acknowledgment email including a copy of the answers submitted
  • advice by email
  • a follow up phone call (depending on the risk level)

If possible, provide a work phone number and email address instead of personal contact details.

Main contact person

", + "schema": {} + }, + { + "name": "MainContactName", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Full name", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactJobTitle", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Job title", + "hint": "For example, manager, senior carer", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactPhoneNumber", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Phone number", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactEmailAddress", + "options": {}, + "type": "TextField", + "nameHasError": false, + "title": "Email address", + "values": { + "type": "listRef" + } + }, + { + "name": "heading1", + "options": { + "required": false + }, + "type": "Para", + "content": "

Alternative contact

Enter details for an alternative contact if you want the emails to also be sent to a second contact person. We will use this phone number for a follow up call if the main contact is not available.

", + "schema": {} + }, + { + "name": "AltContactName", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Full name", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactJobTitle", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Job title", + "hint": "For example, manager, senior carer", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactPhoneNumber", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Phone number", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactEmailAddress", + "options": { + "required": false + }, + "type": "TextField", + "nameHasError": false, + "title": "Email address", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/service-users" + } + ] + }, + { + "path": "/service-users", + "title": "Service users and staff", + "section": "PeopleInYourSetting", + "components": [ + { + "name": "ServiceUsersTypes", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Select the options that best describe the majority of your service users", + "hint": "You can select more than one option", + "list": "ServiceUsersTypes", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersCurrentlyLive", + "options": {}, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 200 + }, + "title": "How many service users currently live in your care setting or use your service?", + "hint": "Include those who are currently in hospital or on visits out", + "list": "ServiceUsersTypes" + }, + { + "name": "StaffNumber", + "options": {}, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many staff currently work in your care setting or service?" + }, + { + "name": "EmptyBeds", + "options": { "required": false }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 200 + }, + "nameHasError": false, + "title": "How many empty beds do you have in your care setting?", + "hint": "If you do not know, leave this blank" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "./pages/summary.js", + "title": "Check your answers before sending your report", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Setting details

Your setting nameBelmont Care HomeChange
Your setting postcodeTQ5 0AHChange
Your local UKHSA health protection teamSouth West Health Protection TeamChange
Your Care Quality Commission (CQC) location ID000001888Change
Type of adult social care you provideResidential care homeChange

Contact details

Full name of contact personPat DeerfieldChange
Job title of contact personManagerChange
Telephone number07451300300Change
Email addressPat@cov.comChange

Infections you are reporting

Acute respiratory infections you are reportingFluChange
Number of cases of Flu you are reporting2 or moreChange
Symptoms in 2 or more cases of Flu started within 5 days of each otherYesChange
You think the cases of Flu could be linked by spread in your settingYesChange
At least one case of Flu has been confirmed by a positive testYesChange

Service users and staff

How would you describe the majority of your service usersService users, staffChange
Number of people that currently live in your setting or use your service27Change
Number of staff that work in your care setting or service7Change
Number of empty beds (optional)3Change

Flu in your setting

You are reporting cases or symptoms of Flu in service users or staff2Change
Number of service users who have Flu confirmed by a test5Change
Number of service users who have symptoms of an acute respiratory infection, but have not been tested for Flu5Change
Number of staff members who have Flu confirmed by a test1Change
Number of staff who have symptoms of an acute respiratory infection, but have not been tested for Flu2Change
Date symptoms started in the first case of Flu02 August 2024Change
Date symptoms started in the second case of Flu (optional)N/AChange
Date symptoms started in the most recent case of Flu10 August 2024Change

Vaccination among your staff and service users

Number of service users who have had the flu vaccine for this current winter season (optional)20Change
Number of staff who have had the flu vaccine for this current winter season (optional)6Change

Infection prevention and control (IPC) and outbreak management in your setting

How often are you monitoring staff IPC practicesWithin the last monthChange
Issues you are currently experiencing and need support withTest kit supplyChange
Your setting undertakes aerosol generating procedures (AGPs)YesChange
Staff carrying out aerosol generating procedures, wear fit-tested and FFP3 masksAllChange

Staffing

You use agency staff or share staff with other care settingsYesChange
Number of additional agency staff or staff shared with settings you have used during this outbreakFewer than 5Change

Now send your report

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth.

", + "schema": {} + } + ], + "next": [] + }, + { + "path": "/reportSent", + "title": "", + "components": [ + { + "name": "nMOTrx", + "options": {}, + "type": "Para", + "content": "

Report sent

Your reference number
OS-5371

Your outbreak reference number

Your reference number is: OS-5371. Use this number if you need to contact the UKHSA health protection team about your outbreak.

What happens next

We will send 2 automated emails to Pel@coy.com.

An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk outbreak, a medium-risk outbreak, a high-priority outbreak, or a single case of flu.

An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team or community infection control team.

If your outbreak is high priority on a weekend or bank holiday

If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team. Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

If you need urgent medical advice

If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

Give feedback on this service

This is a new service. Help us improve it and give your feedback.

", + "schema": {} + } + ] + } + ], + "lists": [ + { + "title": "yes-no-sure", + "name": "YesNoSure", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + }, + { + "text": "Not sure", + "value": "Not sure" + } + ] + }, + { + "title": "infection-types", + "name": "InfectionTypes", + "type": "string", + "items": [ + { + "text": "COVID-19", + "value": "COVID-19" + }, + { + "text": "Flu", + "value": "Flu" + }, + { + "text": "Any other acute respiratory infections", + "value": "Any other acute respiratory infections", + "description": "including viruses such as respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus" + } + ] + }, + { + "title": "ari-infection-types", + "name": "ARIInfectionType", + "type": "string", + "items": [ + { + "text": "Adenovirus", + "value": "Adenovirus" + }, + { + "text": "Human Metapneumovirus (hMPV)", + "value": "Human Metapneumovirus (hMPV)" + }, + { + "text": "Parainfluenza", + "value": "Parainfluenza" + }, + { + "text": "Respiratory Syncytial Virus (RSV)", + "value": "Respiratory Syncytial Virus (RSV)" + }, + { + "text": "Rhinovirus", + "value": "Rhinovirus" + }, + { + "text": "Other acute respiratory infection", + "value": "Other" + } + ] + }, + { + "title": "social-care-provider-type", + "name": "MpSRIP", + "type": "string", + "items": [ + { + "text": "Residential care home", + "value": "Residential care home" + }, + { + "text": "Nursing care home", + "value": "Nursing care home" + }, + { + "text": "Residential and nursing care home", + "value": "Residential and nursing care home" + }, + { + "text": "Supported living", + "value": "Supported living or extra care (not high risk)" + }, + { + "text": "Extra care", + "value": "Extra care" + }, + { + "text": "Domiciliary or home care", + "value": "Domiciliary or home care" + }, + { + "text": "Rehabilitation, reablement or respite", + "value": "Rehabilitation, reablement or respite" + }, + { + "text": "Other adult social care", + "value": "Other" + } + ] + }, + { + "title": "one-or-more", + "name": "OneOrMore", + "type": "string", + "items": [ + { + "text": "1", + "value": "One" + }, + { + "text": "2 or more", + "value": "2 or more" + } + ] + }, + { + "title": "service-or-staff", + "name": "ServiceOrStaff", + "type": "string", + "items": [ + { + "text": "Service user", + "value": "Service user" + }, + { + "text": "Staff", + "value": "Staff" + } + ] + }, + { + "title": "service-or-staff-multiple", + "name": "ServiceOrStaffMultiple", + "type": "string", + "items": [ + { + "text": "Service users", + "value": "Service users" + }, + { + "text": "Staff", + "value": "Staff" + } + ] + }, + { + "title": "ipc-practices", + "name": "IPCPractices", + "type": "string", + "items": [ + { + "text": "more than once a month", + "value": "more than once a month" + }, + { + "text": "every 1 to 6 months", + "value": "every 1 to 6 months" + }, + { + "text": "every 7 to 12 months", + "value": "every 7 to 12 months" + }, + { + "text": "less than every 12 months", + "value": "less than every 12 months" + }, + { + "text": "we do not monitor infection prevention and control practices", + "value": "we do not monitor infection prevention and control practices" + } + ] + }, + { + "title": "case-numbers", + "name": "CaseNumbers", + "type": "string", + "items": [ + { + "text": "0", + "value": "None" + }, + { + "text": "1", + "value": "One" + }, + { + "text": "2 to 3", + "value": "2 to 3" + }, + { + "text": "4 to 5", + "value": "4 to 5" + }, + { + "text": "More than 5", + "value": "More than 5" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "issues", + "name": "Issues", + "type": "string", + "items": [ + { + "text": "COVID-19: access to treatments", + "value": "COVID-19: access to treatments" + }, + { + "text": "COVID-19: LFD test kit supply", + "value": "COVID-19: LFD test kit supply" + }, + { + "text": "Hand hygiene", + "value": "Hand hygiene" + }, + { + "text": "Keeping symptomatic service users away from others", + "value": "Keeping symptomatic service users away from others" + }, + { + "text": "New admissions or transfer of service users", + "value": "New admissions or transfer of service users" + }, + { + "text": "Staffing", + "value": "Staffing" + }, + { + "text": "Supply of PPE", + "value": "Supply of PPE" + }, + { + "text": "Use of PPE", + "value": "Use of PPE" + }, + { + "text": "Visits", + "value": "Visits" + }, + { + "text": "Waste, cleaning or laundry", + "value": "Waste, cleaning or laundry" + }, + { + "text": "No issues", + "value": "No issues" + } + ] + }, + { + "title": "ffp3-masks", + "name": "FFP3Masks", + "type": "string", + "items": [ + { + "text": "All", + "value": "All" + }, + { + "text": "Some", + "value": "Some" + }, + { + "text": "None", + "value": "None" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "additional-staff", + "name": "AdditionalStaff", + "type": "string", + "items": [ + { + "text": "Fewer than 5", + "value": "Fewer than 5" + }, + { + "text": "5 or more", + "value": "5 or more" + } + ] + }, + { + "title": "service-users-types", + "name": "ServiceUsersTypes", + "type": "string", + "items": [ + { + "text": "People with learning difficulties or learning disabilities", + "value": "People with learning difficulties or learning disabilities" + }, + { + "text": "People with physical disabilities or severe medical conditions", + "value": "People with physical disabilities or severe medical conditions" + }, + { + "text": "People with mental health needs", + "value": "People with mental health needs" + }, + { + "text": "People with substance misuse issues", + "value": "People with substance misuse issues" + }, + { + "text": "People living with dementia", + "value": "People living with dementia" + }, + { + "text": "Under 65 years", + "value": "Under 65 years" + }, + { + "text": "65 years or over", + "value": "65 years or over" + } + ] + }, + { + "title": "HPTs", + "name": "sjgMDe", + "type": "string", + "items": [ + { + "text": "East of England HPT", + "value": "East of England HPT" + }, + { + "text": "West Midlands HPT", + "value": "West Midlands HPT" + }, + { + "text": "South West HPT", + "value": "South West HPT" + } + ] + }, + { + "title": "flu-severity-specific-area", + "name": "FluSeveritySpecificArea", + "type": "string", + "items": [ + { + "text": "Cases are all within one specific area", + "value": "Cases are all within one specific area" + }, + { + "text": "Cases are across more than one area", + "value": "Cases are across more than one area" + }, + { + "text": "Not sure", + "value": "Not sure" + }, + { + "text": "Not applicable to my setting (for example, not residential)", + "value": "Not applicable to my setting (for example, not residential)" + } + ] + } + ], + "sections": [ + { + "name": "AcuteInfections", + "title": "Acute respiratory infections in your setting" + }, + { + "name": "Covid19InYourSetting", + "title": "COVID-19 in your setting" + }, + { + "name": "OtherInYourSetting", + "title": "Other infections in your setting" + }, + { + "name": "InfectionYouAreReporting", + "title": "Infection you are reporting" + }, + { + "name": "InfectionsYouAreReporting", + "title": "Infections you are reporting" + }, + { + "name": "InfectionsInYourSetting", + "title": "Infections in your setting" + }, + { + "name": "SeverityOfIllness", + "title": "Severity of illness" + }, + { + "name": "SymptomStartDates", + "title": "Symptom start dates" + }, + { + "name": "Vaccination", + "title": "Vaccination" + }, + { + "name": "Summary", + "title": "Summary" + }, + { + "name": "SettingDetails", + "title": "Setting details" + }, + { + "name": "PeopleInYourSetting", + "title": "People in your setting" + }, + { + "name": "YourSetting", + "title": "Your setting" + }, + { + "name": "FluAndChestInfectionInYourSetting", + "title": "Flu and chest infection in your setting" + }, + { + "name": "InfectionPreventionAndControl", + "title": "Infection prevention and control" + }, + { + "name": "Staff", + "title": "Staff" + }, + { + "name": "ConfirmedOrUnknownARI", + "title": "Confirmed or unknown acute respiratory infection" + }, + { + "name": "FluInYourSetting", + "title": "Flu in your setting" + } + ], + "conditions": [ + { + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Adenovirus", + "display": "Adenovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Parainfluenza", + "display": "Parainfluenza" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Rhinovirus", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Other acute respiratory infection", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "value": { + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Adenovirus", + "display": "Adenovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "value": { + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "value": { + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Parainfluenza", + "display": "Parainfluenza" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "value": { + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "value": { + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Rhinovirus", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "value": { + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Other acute respiratory infection", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "PositiveARI:No", + "name": "PositiveARI:No", + "value": { + "name": "PositiveARI:No", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.PositiveARI", + "type": "YesNoField", + "display": "Do you have any positive test results for an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreARI:No", + "name": "TwoOrMoreARI:No", + "value": { + "name": "TwoOrMoreARI:No", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreARI", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreCovid:No", + "name": "TwoOrMoreCovid:No", + "value": { + "name": "TwoOrMoreCovid:No", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:FLU", + "name": "WhichARI:FLU", + "value": { + "name": "WhichARI:FLU", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER", + "name": "WhichARI:COVID19ANDOTHER", + "value": { + "name": "WhichARI:COVID19ANDOTHER", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDFLU", + "name": "WhichARI:COVID19ANDFLU", + "value": { + "name": "WhichARI:COVID19ANDFLU", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "value": { + "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "value": { + "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of COVID-19?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreARI", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "value": { + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of COVID-19?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "value": { + "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", + "type": "RadiosField", + "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + + { + "displayName": "WhichARI:COVID19", + "name": "WhichARI:COVID19", + "value": { + "name": "WhichARI:COVID19", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + } + ] + } + }, + { + "displayName": "WhichARI:Other", + "name": "WhichARI:Other", + "value": { + "name": "WhichARI:Other", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndFlu", + "name": "WhichARI:CovidAndFlu", + "value": { + "name": "WhichARI:CovidAndFlu", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndOther", + "name": "WhichARI:CovidAndOther", + "value": { + "name": "WhichARI:CovidAndOther", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidFluAndConfirmedARI", + "name": "WhichARI:CovidFluAndConfirmedARI", + "value": { + "name": "WhichARI:CovidFluAndConfirmedARI", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "WhichOtherARI:Adenovirus", + "name": "WhichOtherARI:Adenovirus", + "value": { + "name": "WhichOtherARI:Adenovirus", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + } + ] + } + }, + { + "displayName": "ReportCovid:No", + "name": "ReportCovid:No", + "value": { + "name": "ReportCovid:No", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", + "type": "RadiosField", + "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreCasesNotCovidFlu:YES", + "name": "TwoOrMoreCasesNotCovidFlu:YES", + "value": { + "name": "TwoOrMoreCasesNotCovidFlu:YES", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "type": "YesNoField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + } + ] + } + }, + { + "displayName": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "value": { + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.SingleCaseOfFluServiceOrStaff", + "type": "RadiosField", + "display": "Who has the case of flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Service user", + "display": "Service user" + } + } + ] + } + }, + { + "displayName": "NumberOfCasesOfFlu:One", + "name": "NumberOfCasesOfFlu:One", + "value": { + "name": "NumberOfCasesOfFlu:One", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.NumberOfCasesOfFlu", + "type": "RadiosField", + "display": "How many cases of flu are you reporting?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "One", + "display": "1" + } + } + ] + } + }, + { + "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", + "value": { + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of flu in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", + "value": { + "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of flu in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of flu in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "CovidServiceOrStaff:ServiceUsers", + "name": "CovidServiceOrStaff:ServiceUsers", + "value": { + "name": "CovidServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "CovidServiceOrStaff:Staff", + "name": "CovidServiceOrStaff:Staff", + "value": { + "name": "CovidServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "CovidServiceOrStaff:Both", + "name": "CovidServiceOrStaff:Both", + "value": { + "name": "CovidServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of COVID-19 in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIServiceOrStaff:ServiceUsers", + "name": "ARIServiceOrStaff:ServiceUsers", + "value": { + "name": "ARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIServiceOrStaff:Staff", + "name": "ARIServiceOrStaff:Staff", + "value": { + "name": "ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIServiceOrStaff:Both", + "name": "ARIServiceOrStaff:Both", + "value": { + "name": "ARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "AGPs:yes", + "name": "AGPs:yes", + "value": { + "name": "AGPs:yes", + "conditions": [ + { + "field": { + "name": "InfectionPreventionAndControl.AGPs", + "type": "YesNoField", + "display": "Does your setting undertake aerosol generating procedures (AGPs)?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + } + ] + } + }, + { + "displayName": "AgencyStaff:No", + "name": "AgencyStaff:No", + "value": { + "name": "AgencyStaff:No", + "conditions": [ + { + "field": { + "name": "Staff.AgencyStaff", + "type": "YesNoField", + "display": "Do you use agency staff or share staff with other care settings?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "WEBHOOOK", + "title": "CareOBRA SalesForce", + "type": "webhook", + "outputConfiguration": { + "url": "${Webhook.URL}" + } + } + ], + "version": 2, + "skipSummary": false, + "declaration": "
\n

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.
\n

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth

\n
\n", + "name": "Report an outbreak", + "feedback": { + "feedbackForm": true, + "url": "" + }, + "phaseBanner": { + "phase": "beta" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "We will send 2 automated emails to {{ S1Q8 }}", + "title": "Report sent" + } + } + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts similarity index 91% rename from runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts rename to runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts index 98f4be38bf..a4cd390580 100644 --- a/runner/src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts @@ -4,17 +4,17 @@ import { PageController } from "server/plugins/engine/pageControllers/PageContro import { FormComponent } from "server/plugins/engine/components"; import { PageControllerBase } from "server/plugins/engine/pageControllers/PageControllerBase"; import { FormModel } from "server/plugins/engine/models"; -import { NonSubmittingSummaryPage } from "@xgovformbuilder/model"; +import { CheckpointSummaryPageC } from "@xgovformbuilder/model"; const DEFAULT_OPTIONS = { customText: {}, }; -export class NonSubmittingSummaryPageController extends PageController { +export class CheckpointSummaryPageController extends PageController { returnUrlParameter: string; - options: NonSubmittingSummaryPage["options"]; + options: CheckpointSummaryPageC["options"]; - constructor(model: FormModel, pageDef: NonSubmittingSummaryPage) { + constructor(model: FormModel, pageDef: CheckpointSummaryPageC) { super(model, pageDef); const returnPath = `/${this.model.basePath}${this.path}`; @@ -78,8 +78,9 @@ export class NonSubmittingSummaryPageController extends PageController { displaySectionName = page.sectionForMultiSummaryPages || page.section?.name; } else { - // Use sectionForSummaryPages for grouping if available, otherwise use section name - displaySectionName = page.sectionForSummaryPages || page.section?.name; + // Use sectionForExitJourneySummaryPages for grouping if available, otherwise use section name + displaySectionName = + page.sectionForExitJourneySummaryPages || page.section?.name; } // Always use section name for state access diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 7d1d9dd9be..033fa67788 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -53,7 +53,7 @@ export class PageControllerBase { condition: any; // TODO repeatField: any; // TODO section: any; // TODO - sectionForSummaryPages: any; + sectionForExitJourneySummaryPages: any; sectionForMultiSummaryPages: any; components: ComponentCollection; hasFormComponents: boolean; @@ -81,7 +81,8 @@ export class PageControllerBase { (section) => section.name === pageDef.section ); - this.sectionForSummaryPages = pageDef.sectionForSummaryPages; + this.sectionForExitJourneySummaryPages = + pageDef.sectionForExitJourneySummaryPages; this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; // Components collection diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index aebd997261..eec305f797 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -11,7 +11,7 @@ import { RepeatingFieldPageController } from "./RepeatingFieldPageController"; import { Page } from "@xgovformbuilder/model"; import { UploadPageController } from "server/plugins/engine/pageControllers/UploadPageController"; import { MultiStartPageController } from "server/plugins/engine/pageControllers/MultiStartPageController"; -import { NonSubmittingSummaryPageController } from "src/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController"; +import { CheckpointSummaryPageController } from "src/server/plugins/engine/pageControllers/CheckpointSummaryPageController"; const PageControllers = { DobPageController, @@ -24,7 +24,7 @@ const PageControllers = { RepeatingFieldPageController, UploadPageController, MultiStartPageController, - NonSubmittingSummaryPageController, + CheckpointSummaryPageController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index 86c51503cd..57799c1b21 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -6,4 +6,4 @@ export { StartPageController } from "./StartPageController"; export { SummaryPageController } from "./SummaryPageController"; export { PageControllerBase } from "./PageControllerBase"; export { getPageController, controllerNameFromPath } from "./helpers"; -export { NonSubmittingSummaryPageController } from "./NonSubmittingSummaryPageController"; +export { CheckpointSummaryPageController } from "./CheckpointSummaryPageController"; diff --git a/runner/src/server/views/non-submitting-summary.html b/runner/src/server/views/checkpoint-summary.html similarity index 100% rename from runner/src/server/views/non-submitting-summary.html rename to runner/src/server/views/checkpoint-summary.html diff --git a/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts b/runner/test/cases/server/plugins/engine/pageControllers/CheckpointSummaryPageController.test.ts similarity index 94% rename from runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts rename to runner/test/cases/server/plugins/engine/pageControllers/CheckpointSummaryPageController.test.ts index 34ab57622f..582e4cf75c 100644 --- a/runner/test/cases/server/plugins/engine/pageControllers/NonSubmittingSummaryPageController.test.ts +++ b/runner/test/cases/server/plugins/engine/pageControllers/CheckpointSummaryPageController.test.ts @@ -1,14 +1,14 @@ import * as Code from "@hapi/code"; import * as Lab from "@hapi/lab"; import { FormModel } from "server/plugins/engine/models"; -import { NonSubmittingSummaryPageController } from "server/plugins/engine/pageControllers/NonSubmittingSummaryPageController"; +import { CheckpointSummaryPageController } from "server/plugins/engine/pageControllers/CheckpointSummaryPageController"; const { expect } = Code; const lab = Lab.script(); exports.lab = lab; const { describe, it, beforeEach } = lab; -describe("NonSubmittingSummaryPageController", () => { +describe("CheckpointSummaryPageController", () => { let controller; let mockModel; let mockPageDef; @@ -101,7 +101,7 @@ describe("NonSubmittingSummaryPageController", () => { path: "/summary", title: "Summary Page", section: "section1", - controller: "NonSubmittingSummaryPageController", + controller: "CheckpointSummaryPageController", name: "summary-page", components: [], next: [], @@ -138,7 +138,7 @@ describe("NonSubmittingSummaryPageController", () => { continue: Symbol("continue"), }; - controller = new NonSubmittingSummaryPageController( + controller = new CheckpointSummaryPageController( new FormModel(formDef, {}), mockPageDef ); @@ -146,7 +146,7 @@ describe("NonSubmittingSummaryPageController", () => { describe("constructor", () => { it("should initialize with default options when none provided", () => { - const controllerNoOptions = new NonSubmittingSummaryPageController( + const controllerNoOptions = new CheckpointSummaryPageController( new FormModel(mockModel.def, {}), { ...mockPageDef, options: undefined } ); From 035d347a0402f8f4fbbb57acf47eca09cc80b82e Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 27 Jan 2025 16:14:20 +0000 Subject: [PATCH 045/403] revert adding form --- runner/src/server/forms/ReportAnOutbreak.json | 5244 ----------------- 1 file changed, 5244 deletions(-) delete mode 100644 runner/src/server/forms/ReportAnOutbreak.json diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json deleted file mode 100644 index ababbef3fb..0000000000 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ /dev/null @@ -1,5244 +0,0 @@ -{ - "metadata": {}, - "startPage": "/start", - "pages": [ - { - "path": "/start", - "title": "Report an outbreak of acute respiratory infection in an adult social care setting", - "components": [ - { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

Applies to England

\n" - }, - { - "name": "nMOTry", - "options": {}, - "type": "Para", - "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

    \n
  • a new outbreak of an acute respiratory infection (ARI) - 2 or more people in your setting with symptom onset within 5 days of each other
  • \n
  • a single confirmed case of flu in your setting
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), or unknown respiratory infection including chest infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n
    \n
  • setting postcode
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
\n\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak or cluster of ARI that you've already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Do not use this service to report:

\n
    \n
  • single cases of COVID-19
  • \n
  • any infection other than acute respiratory infections
  • \n
\n

Read more on:

\n \n

Why you should report an outbreak

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team during working hours.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" - } - ], - "next": [ - { - "path": "/setting" - } - ], - "controller": "MultiStartPageController", - "showContinueButton": false - }, - { - "path": "/setting", - "title": "What type of adult social care do you provide?", - "section": "YourSetting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "InfectionsInYourSetting", - "components": [ - { - "name": "CareSettingType", - "options": { - "summaryTitle": "Your setting" - }, - "type": "RadiosField", - "nameHasError": false, - "title": "What type of adult social care do you provide?", - "list": "MpSRIP", - "schema": {}, - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/positive-ari" - } - ] - }, - { - "path": "/positive-ari", - "title": "Do you have any positive test results for an acute respiratory infection?", - "section": "InfectionsYouAreReporting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "InfectionsInYourSetting", - "components": [ - { - "name": "PositiveARI", - "options": { - "summaryTitle": "Positive test result" - }, - "type": "YesNoField", - "nameHasError": false, - "title": "Do you have any positive test results for an acute respiratory infection?", - "hint": "The infection must have been confirmed by a test, for example a lateral flow test, flu swab test or a laboratory test.", - "schema": {}, - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/2-or-more-ari", - "condition": "PositiveARI:No" - }, - - { - "path": "/which-ari" - } - ] - }, - { - "path": "/which-ari", - "title": "Which acute respiratory infections do you have a positive test result for?", - "section": "InfectionsYouAreReporting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "InfectionsInYourSetting", - "components": [ - { - "name": "WhichARI", - "options": { - "summaryTitle": "Infection" - }, - "type": "CheckboxesField", - "nameHasError": false, - "title": "Which acute respiratory infections do you have a positive test result for? ", - "list": "InfectionTypes", - "hint": "You can select more than one option", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/2-or-more-covid-descriptive", - "condition": "WhichARI:COVID19ANDOTHER" - }, - { - "path": "/2-or-more-covid-descriptive", - "condition": "WhichARI:COVID19ANDFLU" - }, - { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, - { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, - { "path": "/2-or-more-cases-not-covid-or-flu" } - ] - }, - { - "path": "/2-or-more-covid", - "title": "Are you reporting 2 or more cases?", - "section": "InfectionsYouAreReporting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "Covid19InYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "TwoOrMoreCovid", - "type": "YesNoField", - "nameHasError": false, - "options": { - "summaryTitle": "2 or more cases" - }, - "title": " ", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/do-not-need-to-report", - "condition": "TwoOrMoreCovid:No" - }, - { - "path": "/2-or-more-covid-details" - } - ] - }, - { - "path": "/2-or-more-covid-descriptive", - "title": "Are you reporting 2 or more cases of COVID-19?", - "section": "InfectionsYouAreReporting", - "sectionForMultiSummaryPages": "Covid19InYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "TwoOrMoreCovid", - "options": { - "summaryTitle": "2 or more cases" - }, - "type": "YesNoField", - "nameHasError": false, - "title": " ", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/2-or-more-cases-not-covid-or-flu", - "condition": "TwoOrMoreCovid:No" - }, - { - "path": "/2-or-more-covid-details" - } - ] - }, - { - "path": "/2-or-more-covid-details", - "title": "Acute respiratory infections in your setting", - "section": "InfectionsYouAreReporting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "Covid19InYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "TwoOrMoreCovid5days", - "options": { - "summaryTitle": "Symptoms started within 5 days of each other" - }, - "type": "RadiosField", - "nameHasError": false, - "title": "Did symptoms in 2 or more cases start within 5 days of each other?", - "list": "YesNoSure", - "values": { - "type": "listRef" - } - }, - { - "name": "TwoOrMoreCovidSpread", - "options": { - "summaryTitle": "The cases are linked by spread" - }, - "type": "RadiosField", - "nameHasError": false, - "title": "Is it possible that at least 2 of the cases are linked by spread in your setting?​", - "list": "YesNoSure", - "values": { - "type": "listRef" - } - }, - { - "type": "Para", - "content": "

Read guidance on when cases may be linked by spread in the care setting (opens in a new tab).

" - } - ], - "next": [ - { - "path": "/2-or-more-cases-not-covid-or-flu", - "condition": "WhichARI:COVID19ANDOTHER" - }, - { - "path": "/do-not-need-to-report", - "condition": "ReportCovid:No" - }, - { - "path": "/ari-confirmed-cases-setting" - } - ] - }, - { - "path": "/2-or-more-ari", - "title": "Are you reporting 2 or more cases of an acute respiratory infection?", - "section": "InfectionYouAreReporting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "Covid19InYourSetting", - "components": [ - { - "name": "TwoOrMoreARI", - "options": { - "summaryTitle": "2 or more cases" - }, - "type": "YesNoField", - "nameHasError": false, - "title": "Are you reporting 2 or more cases of an acute respiratory infection?", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/do-not-need-to-report", - "condition": "TwoOrMoreARI:No" - }, - { - "path": "/ari-unknown-cases-setting" - } - ] - }, - { - "path": "/do-not-need-to-report", - "title": "You do not need to report", - "section": "InfectionsYouAreReporting", - "controller": "CheckpointSummaryPageController", - "options": { - "customText": { - "insetText": "Based on your answers, you do not need to report this acute respiratory infection.", - "details": "

You only need to report:

  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

Read guidance on infection prevention and control in adult social care settings.

" - } - }, - "components": [] - }, - { - "path": "/do-not-need-to-report-multiple", - "title": "You do not need to report", - "section": "InfectionsYouAreReporting", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true, - "customText": { - "insetText": "Based on your answers, you do not need to report these acute respiratory infections.", - "details": "

You only need to report:

  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

Read guidance on infection prevention and control in adult social care settings.

" - } - }, - "components": [] - }, - { - "path": "/2-or-more-cases-not-covid-or-flu", - "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", - "section": "InfectionYouAreReporting", - "sectionForExitJourneySummaryPages": "AcuteInfections", - "sectionForMultiSummaryPages": "OtherInYourSetting", - "components": [ - { - "name": "TwoOrMoreCasesNotCovidFlu", - "options": { - "summaryTitle": "2 or more cases" - }, - "type": "YesNoField", - "nameHasError": false, - "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", - "hint": "This includes viruses such as respiratory syncytial virus, rhinovirus, parainfluenza and chest infections", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "path": "/do-not-need-to-report-multiple" - }, - { - "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "path": "/do-not-need-to-report-multiple" - }, - { - "condition": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "path": "/mid-way-summary-covid-no-other-yes" - }, - { - "condition": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "path": "/mid-way-summary-covid-yes-other-no" - }, - { - "condition": "TwoOrMoreCasesNotCovidFlu:YES", - "path": "/ari-infection-type" - }, - { - "path": "/do-not-need-to-report" - } - ] - }, - { - "path": "/mid-way-summary", - "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true - }, - "components": [] - }, - { - "path": "/mid-way-summary-covid-yes-other-no", - "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true, - "customText": { - "insetText": "

Based on your answers:

  • you need to report the cases of COVID-19
  • you do not need to report the case of other respiratory infection

" - } - }, - "components": [] - }, - { - "path": "/mid-way-summary-covid-no-other-yes", - "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true, - "customText": { - "insetText": "

Based on your answers:

  • you need to report the cases of COVID-19
  • you do not need to report the case of other respiratory infection

" - } - }, - "components": [] - }, - { - "path": "/ari-infection-type", - "title": "What infection are you reporting?", - "section": "InfectionYouAreReporting", - "sectionForMultiSummaryPages": "OtherInYourSetting", - "components": [ - { - "name": "ARIInfectionType", - "options": { - "summaryTitle": "Infection type" - }, - "type": "CheckboxesField", - "nameHasError": false, - "title": "What infection are you reporting?", - "hint": "You can select more than one option", - "list": "ARIInfectionType", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "condition": "WhichARI:COVID19ANDOTHER", - "path": "/mid-way-summary" - }, - { - "condition": "WhichARI:Other", - "path": "/other-ari-confirmed-cases-setting" - }, - { - "path": "/ari-confirmed-cases-setting" - } - ] - }, - { - "path": "/service-users-ari-confirmed", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersSymptomsNotTested", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "ServiceUsersTestedCovid", - "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": { - "required": false - } - }, - { - "name": "ServiceUsersTestedFlu", - "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/service-users-ari-adenovirus", - "title": "Service users: number of adenovirus cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersAdenovirus", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" - }, - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/service-users-ari-hmpv", - "title": "Service users: number of human Metapneumovirus (hMPV) cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersHmpv", - "type": "NumberField", - "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" - }, - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/service-users-ari-parainfluenza", - "title": "Service users: number of parainfluenza cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersParainfluenza", - "type": "NumberField", - "title": "How many service users have tested positive for parainfluenza?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" - }, - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/service-users-ari-rsv", - "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersRSV", - "type": "NumberField", - "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" - }, - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/service-users-ari-rhinovirus", - "title": "Service users: number of rhinovirus cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersRhinovirus", - "type": "NumberField", - "title": "How many service users have tested positive for rhinovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" - }, - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/service-users-other", - "title": "Service users: number of other acute respiratory infection cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersOtherARI", - "type": "NumberField", - "title": "How many service users have tested positive for an other acute respiratory infection?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/staff-ari-adenovirus", - "title": "Staff: number of adenovirus cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffAdenovirus", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/staff-ari-hmpv", - "title": "Staff: number of human Metapneumovirus (hMPV) cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffHmpv", - "type": "NumberField", - "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/staff-ari-parainfluenza", - "title": "Staff: number of parainfluenza cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffParainfluenza", - "type": "NumberField", - "title": "How many staff have tested positive for parainfluenza?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/staff-ari-rsv", - "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffRSV", - "type": "NumberField", - "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/staff-ari-rhinovirus", - "title": "Staff: number of rhinovirus cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffRhinovirus", - "type": "NumberField", - "title": "How many staff have tested positive for rhinovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/staff-other", - "title": "Staff: number of other acute respiratory infection cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffOtherARI", - "type": "NumberField", - "title": "How many staff have tested positive for an other acute respiratory infection?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/service-users-ari-unknown", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection but have not been tested?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "ServiceUsersTestedCovid", - "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": { - "required": false - } - }, - { - "name": "ServiceUsersTestedFlu", - "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/staff-ari-unknown", - "condition": "ARIServiceOrStaff:Staff" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-ari-unknown", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." - }, - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "StaffTestedCovid", - "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": { - "required": false - } - }, - { - "name": "StaffTestedFlu", - "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-ari-confirmed", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": { - "min": 0, - "max": 999 - } - }, - { - "name": "StaffTestedCovid", - "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": { - "required": false - } - }, - { - "name": "StaffTestedFlu", - "type": "NumberField", - "title": "How many staff have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/service-users-ari-adenovirus" - } - ] - }, - { - "path": "/cases-of-flu", - "title": "How many cases are you reporting?", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "NumberOfCasesOfFlu", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How many cases are you reporting?", - "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", - "list": "OneOrMore", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/single-case-of-flu", - "condition": "NumberOfCasesOfFlu:One" - }, - { - "path": "/ari-confirmed-cases-setting" - } - ] - }, - { - "path": "/single-case-of-flu", - "title": "Who has the case of flu?", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "SingleCaseOfFluServiceOrStaff", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "Who has the case of flu?", - "list": "ServiceOrStaff", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/flu-severity", - "condition": "SingleCaseOfFluServiceOrStaff:ServiceUser" - }, - { - "path": "/vaccination" - } - ] - }, - { - "path": "/service-users-flu", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "name": "ServiceUsersFluSwabTest", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out" - }, - { - "name": "ServiceUsersChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "ServiceUsersChestInfectionCovid19", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0" - } - ], - "next": [ - { - "path": "/staff-flu", - "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff" - }, - { - "path": "/flu-severity-multiple-cases" - } - ] - }, - { - "path": "/staff-flu", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." - }, - - { - "name": "StaffFluSwabTest", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital." - }, - { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital
If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

This usually includes people who have a sudden onset of acute respiratory symptoms and fever

Include those who are currently in hospital
If none, enter 0" - }, - { - "name": "StaffChestInfectionCovid19", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been tested for COVID-19?", - "hint": "If none, enter 0" - } - ], - "next": [ - { - "path": "/flu-severity-multiple-cases" - } - ] - }, - { - "path": "/symptom-onset-flu", - "title": "Symptom onset for the case of flu", - "section": "FluInYourSetting", - "components": [ - { - "name": "FluSymptomOnsetDate", - "options": {}, - "type": "DatePartsField", - "nameHasError": false, - "title": "When did symptoms start?", - "hint": "For example, 31 3 2024", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/vaccination" - } - ] - }, - { - "path": "/flu-severity", - "title": "Severity of the case of flu", - "section": "FluInYourSetting", - "components": [ - { - "name": "SingleCaseOfFluSeverityCalledGP", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Have you called the GP because of the severity of illness in this case?", - "values": { - "type": "listRef" - } - }, - { - "name": "SingleCaseOfFluSeverityHospitalised", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Has the person been hospitalised with the flu?", - "values": { - "type": "listRef" - } - }, - { - "name": "SingleCaseOfFluSeverityDeath", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Has the person died with flu in this case?", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/symptom-onset-flu" - } - ] - }, - { - "path": "/vaccination", - "title": "Vaccination among your staff and service users", - "section": "Vaccination", - "components": [ - { - "name": "ServiceUsersCovid19Vaccination", - "options": { - "required": false - }, - "type": "NumberField", - "nameHasError": false, - "schema": { - "min": 0, - "max": 200 - }, - "title": "Service users: how many are up to date with the current COVID-19 vaccination schedule?", - "values": { - "type": "listRef" - } - }, - { - "name": "ServiceUsersFluVaccination", - "options": { - "required": false - }, - "type": "NumberField", - "nameHasError": false, - "schema": { - "min": 0, - "max": 200 - }, - "title": "Service users: how many have had the flu vaccine for this current winter season?", - "values": { - "type": "listRef" - } - }, - { - "name": "ServiceUsersRSVVaccination", - "options": { - "required": false - }, - "type": "NumberField", - "nameHasError": false, - "schema": { - "min": 0, - "max": 200 - }, - "title": "Service users: how many have had the respiratory syncytial virus (RSV) vaccine?", - "values": { - "type": "listRef" - } - }, - { - "name": "StaffCovid19Vaccination", - "options": { - "required": false - }, - "type": "NumberField", - "nameHasError": false, - "schema": { - "min": 0, - "max": 200 - }, - "title": "Staff: how many are up to date with the current COVID-19 vaccination schedule?", - "values": { - "type": "listRef" - } - }, - { - "name": "StaffFluVaccination", - "options": { - "required": false - }, - "type": "NumberField", - "nameHasError": false, - "schema": { - "min": 0, - "max": 200 - }, - "title": "Staff: how many have had the flu vaccine for this current winter season?", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/ipc" - } - ] - }, - { - "path": "/ari-unknown-cases-setting", - "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "ARIServiceOrStaff", - "type": "CheckboxesField", - "title": " ", - "hint": "You can select more than one option", - "list": "ServiceOrStaffMultiple", - "options": { - "required": true - } - } - ], - "next": [ - { - "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-unknown" - }, - { - "path": "/staff-ari-unknown" - } - ] - }, - { - "path": "/other-ari-confirmed-cases-setting", - "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "title": " ", - "hint": "You can select more than one option", - "list": "ServiceOrStaffMultiple", - "options": { - "required": true - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-unknown" - }, - { - "path": "/service-users-ari-confirmed" - } - ] - }, - { - "path": "/ari-confirmed-cases-setting", - "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "ARIServiceOrStaff", - "type": "CheckboxesField", - "title": " ", - "hint": "You can select more than one option", - "list": "ServiceOrStaffMultiple", - "options": { - "required": true - } - } - ], - "next": [ - { - "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-master" - }, - { - "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", - "path": "/staff-master" - }, - { - "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-covid-flu" - }, - { - "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "path": "/staff-covid-flu" - }, - { - "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-covid-ari" - }, - { - "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", - "path": "/staff-covid-ari" - }, - { - "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-flu-ari" - }, - { - "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", - "path": "/staff-flu-ari" - }, - { - "path": "/service-users-flu", - "condition": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers" - }, - { - "path": "/staff-flu", - "condition": "WhichARI:Flu&ARIServiceOrStaff:Staff" - }, - { - "path": "/service-users-covid", - "condition": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers" - }, - { - "path": "/staff-covid", - "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff" - }, - { - "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-confirmed" - }, - { - "path": "/staff-ari-cases" - } - ] - }, - { - "path": "/service-users-covid-ari", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersSymptomsNotTested", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersTestedFlu", - "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/staff-ari-cases", - "condition": "ARIServiceOrStaff:Both" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-covid-ari", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffTestedFlu", - "type": "NumberField", - "title": "How many staff have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-ari-cases", - "title": "Staff: Number of cases", - "section": "Infections in your setting", - "components": [ - { - "type": "Para", - "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." - }, - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0, - "max": 200 - } - }, - { - "name": "OtherARIStaffTestedCovid", - "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 200 - } - }, - { - "name": "OtherARIStaffTestedFlu", - "type": "NumberField", - "title": "How many staff have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 200 - } - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/service-users-master", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "ServiceUsersFluSwabTest", - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersNotTested", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - } - ], - "next": [ - { - "path": "/staff-master" - } - ] - }, - { - "path": "/staff-master", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true, - "condition": "covid19" - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "StaffFluSwabTest", - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {} - }, - { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out" - }, - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out

If none, enter 0" - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/ipc", - "title": "Infection prevention and control (IPC) and outbreak management in your setting", - "section": "InfectionPreventionAndControl", - "components": [ - { - "name": "IPCPractices", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How often do you monitor staff infection prevention and control practices?", - "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", - "list": "IPCPractices", - "values": { - "type": "listRef" - } - }, - { - "name": "Issues", - "options": {}, - "type": "CheckboxesField", - "nameHasError": false, - "title": "What issues do you currently need support with?", - "hint": "You can select more than one option", - "list": "Issues", - "values": { - "type": "listRef" - } - }, - { - "name": "AGPs", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Does your setting undertake aerosol generating procedures (AGPs)?", - "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", - "values": { - "type": "listRef" - } - }, - { - "name": "MediaInterest", - "options": { - "required": false - }, - "type": "YesNoField", - "nameHasError": false, - "title": "Are you aware of any media interest in this outbreak?", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/agps", - "condition": "AGPs:yes" - }, - { - "path": "/agency-staff" - } - ] - }, - { - "path": "/flu-severity-multiple-cases", - "title": "Severity of flu or chest infection cases in this outbreak", - "section": "SeverityOfIllness", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "SingleCaseOfFluSeverityCalledGPMultipleCases", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", - "list": "CaseNumbers", - "values": { - "type": "listRef" - } - }, - { - "name": "FluSeverityAntibiotics", - "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", - "type": "NumberField", - "options": { - "required": false - } - }, - { - "name": "FluSeverityHospitalisedMultipleCases", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", - "list": "CaseNumbers", - "values": { - "type": "listRef" - } - }, - { - "name": "FluSeverityDeathMultipleCases", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", - "list": "CaseNumbers", - "values": { - "type": "listRef" - } - }, - { - "name": "FluSeveritySpecificArea", - "title": "Are the cases linked to a specific area of the setting?", - "type": "RadiosField", - "nameHasError": false, - "list": "FluSeveritySpecificArea", - "options": {}, - "schema": {}, - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/ari-unknown-cases-setting", - "condition": "WhichARI:Other" - }, - { - "path": "/symptom-onset" - } - ] - }, - { - "path": "/service-users-covid", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - } - ], - "next": [ - { - "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff", - "path": "/staff-covid-cases" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/service-users-covid-flu", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "ServiceUsersFluSwabTest", - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out

If none, enter 0", - "schema": {}, - "options": {} - } - ], - "next": [ - { - "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "path": "/staff-covid-flu" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-covid-flu", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "StaffFluSwabTest", - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/service-users-flu-ari", - "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersFluSwabTest", - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersTestedCovid", - "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": {}, - "options": { - "required": false - } - } - ], - "next": [ - { - "path": "/staff-flu-ari", - "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-flu-ari", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "NumberField", - "name": "StaffFluSwabTest", - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} - }, - { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffUsersTestedCovid", - "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": {}, - "options": { - "required": false - } - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/severity-of-illness", - "title": "Severity of illness in this outbreak", - "section": "SeverityOfIllness", - "components": [ - { - "name": "severityIntro", - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", - "options": {} - }, - { - "name": "SeverityGPCalls", - "type": "RadiosField", - "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", - "list": "CaseNumbers", - "options": { - "required": true - } - }, - { - "name": "SeverityHospitalisations", - "type": "RadiosField", - "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", - "list": "CaseNumbers", - "options": { - "required": true - } - }, - { - "name": "SeverityDeaths", - "type": "RadiosField", - "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", - "list": "CaseNumbers", - "options": { - "required": true - } - } - ], - "next": [ - { - "path": "/symptom-onset" - } - ] - }, - { - "path": "/symptom-onset", - "title": "Symptom onset in this outbreak", - "section": "SymptomStartDates", - "components": [ - { - "name": "introText1", - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", - "options": {} - }, - { - "name": "introText2", - "type": "Para", - "content": "If you do not know the exact date, give an estimate.", - "options": {} - }, - { - "name": "FirstCaseOnset", - "type": "DatePartsField", - "title": "When did symptoms start in the first case in this outbreak?", - "hint": "For example, 31 3 2025", - "options": { - "required": true - } - }, - { - "name": "MostRecentCaseOnset", - "type": "DatePartsField", - "title": "When did symptoms start in the most recent case in this outbreak?", - "hint": "For example, 31 3 2025", - "options": { - "required": false - } - } - ], - "next": [ - { - "path": "/vaccination" - } - ] - }, - { - "path": "/staff-covid-cases", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." - }, - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "name": "FluSeveritySpecificArea", - "title": "Are the cases linked to a specific area of the setting?", - "type": "RadiosField", - "nameHasError": false, - "list": "FluSeveritySpecificArea", - "options": {}, - "schema": {}, - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/cases-of-flu", - "condition": "WhichARI:CovidAndFlu" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/agps", - "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", - "section": "InfectionPreventionAndControl", - "components": [ - { - "name": "FFP3Masks", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", - "list": "FFP3Masks", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/agency-staff" - } - ] - }, - { - "path": "/agency-staff", - "title": "Do you use agency staff or share staff with other care settings?", - "section": "Staff", - "components": [ - { - "name": "AgencyStaff", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Do you use agency staff or share staff with other care settings?", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/setting-details", - "condition": "AgencyStaff:No" - }, - { - "path": "/additional-staff" - } - ] - }, - { - "path": "/additional-staff", - "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", - "section": "Staff", - "components": [ - { - "name": "AdditionalStaff", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", - "list": "AdditionalStaff", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/setting-details" - } - ] - }, - { - "path": "/setting-details", - "title": "Setting details", - "section": "YourSetting", - "components": [ - { - "name": "SettingName", - "options": {}, - "type": "TextField", - "nameHasError": false, - "title": "Your setting name", - "hint": "The name of the setting where the cases are located, not the management company", - "values": { - "type": "listRef" - } - }, - { - "name": "SettingPostcode", - "options": {}, - "type": "TextField", - "nameHasError": false, - "title": "Your setting postcode", - "hint": "The postcode of the setting where the cases are located, not the management company.", - "values": { - "type": "listRef" - } - }, - { - "name": "HPT", - "options": { - "required": true, - "customValidationMessages": { - "string.empty": "Your local UKHSA health protection team is required", - "string.base": "Your local UKHSA health protection team is required" - } - }, - "type": "SelectField", - "title": "Your local UKHSA health protection team", - "list": "sjgMDe", - "nameHasError": false, - "schema": {}, - "values": { - "type": "listRef" - } - }, - { - "name": "nMOTry", - "options": {}, - "type": "Para", - "content": "\n Use your postcode to find your local health protection team (opens in a new tab)\n", - "schema": {} - }, - { - "name": "CQCRegistered", - "options": {}, - "type": "YesNoField", - "nameHasError": false, - "title": "Is your care setting registered with the Care Quality Commission (CQC)?", - "values": { - "type": "listRef" - } - }, - { - "name": "nMOTdlmry", - "options": {}, - "type": "Para", - "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab). The CQC location ID is listed on the ‘Registration details’ page for your care setting.", - "schema": {} - } - ], - "next": [ - { - "path": "/contact-details" - } - ] - }, - { - "path": "/contact-details", - "title": "Contact details", - "section": "YourSetting", - "components": [ - { - "name": "heading1", - "options": { - "required": false - }, - "type": "Para", - "content": "

Provide a contact who will be available to receive:

  • an acknowledgment email including a copy of the answers submitted
  • advice by email
  • a follow up phone call (depending on the risk level)

If possible, provide a work phone number and email address instead of personal contact details.

Main contact person

", - "schema": {} - }, - { - "name": "MainContactName", - "options": {}, - "type": "TextField", - "nameHasError": false, - "title": "Full name", - "values": { - "type": "listRef" - } - }, - { - "name": "MainContactJobTitle", - "options": { - "required": false - }, - "type": "TextField", - "nameHasError": false, - "title": "Job title", - "hint": "For example, manager, senior carer", - "values": { - "type": "listRef" - } - }, - { - "name": "MainContactPhoneNumber", - "options": {}, - "type": "TextField", - "nameHasError": false, - "title": "Phone number", - "values": { - "type": "listRef" - } - }, - { - "name": "MainContactEmailAddress", - "options": {}, - "type": "TextField", - "nameHasError": false, - "title": "Email address", - "values": { - "type": "listRef" - } - }, - { - "name": "heading1", - "options": { - "required": false - }, - "type": "Para", - "content": "

Alternative contact

Enter details for an alternative contact if you want the emails to also be sent to a second contact person. We will use this phone number for a follow up call if the main contact is not available.

", - "schema": {} - }, - { - "name": "AltContactName", - "options": { - "required": false - }, - "type": "TextField", - "nameHasError": false, - "title": "Full name", - "values": { - "type": "listRef" - } - }, - { - "name": "AltContactJobTitle", - "options": { - "required": false - }, - "type": "TextField", - "nameHasError": false, - "title": "Job title", - "hint": "For example, manager, senior carer", - "values": { - "type": "listRef" - } - }, - { - "name": "AltContactPhoneNumber", - "options": { - "required": false - }, - "type": "TextField", - "nameHasError": false, - "title": "Phone number", - "values": { - "type": "listRef" - } - }, - { - "name": "AltContactEmailAddress", - "options": { - "required": false - }, - "type": "TextField", - "nameHasError": false, - "title": "Email address", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/service-users" - } - ] - }, - { - "path": "/service-users", - "title": "Service users and staff", - "section": "PeopleInYourSetting", - "components": [ - { - "name": "ServiceUsersTypes", - "options": {}, - "type": "CheckboxesField", - "nameHasError": false, - "title": "Select the options that best describe the majority of your service users", - "hint": "You can select more than one option", - "list": "ServiceUsersTypes", - "values": { - "type": "listRef" - } - }, - { - "name": "ServiceUsersCurrentlyLive", - "options": {}, - "type": "NumberField", - "nameHasError": false, - "schema": { - "min": 0, - "max": 200 - }, - "title": "How many service users currently live in your care setting or use your service?", - "hint": "Include those who are currently in hospital or on visits out", - "list": "ServiceUsersTypes" - }, - { - "name": "StaffNumber", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff currently work in your care setting or service?" - }, - { - "name": "EmptyBeds", - "options": { "required": false }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many empty beds do you have in your care setting?", - "hint": "If you do not know, leave this blank" - } - ], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "path": "/summary", - "controller": "./pages/summary.js", - "title": "Check your answers before sending your report", - "components": [ - { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

Setting details

Your setting nameBelmont Care HomeChange
Your setting postcodeTQ5 0AHChange
Your local UKHSA health protection teamSouth West Health Protection TeamChange
Your Care Quality Commission (CQC) location ID000001888Change
Type of adult social care you provideResidential care homeChange

Contact details

Full name of contact personPat DeerfieldChange
Job title of contact personManagerChange
Telephone number07451300300Change
Email addressPat@cov.comChange

Infections you are reporting

Acute respiratory infections you are reportingFluChange
Number of cases of Flu you are reporting2 or moreChange
Symptoms in 2 or more cases of Flu started within 5 days of each otherYesChange
You think the cases of Flu could be linked by spread in your settingYesChange
At least one case of Flu has been confirmed by a positive testYesChange

Service users and staff

How would you describe the majority of your service usersService users, staffChange
Number of people that currently live in your setting or use your service27Change
Number of staff that work in your care setting or service7Change
Number of empty beds (optional)3Change

Flu in your setting

You are reporting cases or symptoms of Flu in service users or staff2Change
Number of service users who have Flu confirmed by a test5Change
Number of service users who have symptoms of an acute respiratory infection, but have not been tested for Flu5Change
Number of staff members who have Flu confirmed by a test1Change
Number of staff who have symptoms of an acute respiratory infection, but have not been tested for Flu2Change
Date symptoms started in the first case of Flu02 August 2024Change
Date symptoms started in the second case of Flu (optional)N/AChange
Date symptoms started in the most recent case of Flu10 August 2024Change

Vaccination among your staff and service users

Number of service users who have had the flu vaccine for this current winter season (optional)20Change
Number of staff who have had the flu vaccine for this current winter season (optional)6Change

Infection prevention and control (IPC) and outbreak management in your setting

How often are you monitoring staff IPC practicesWithin the last monthChange
Issues you are currently experiencing and need support withTest kit supplyChange
Your setting undertakes aerosol generating procedures (AGPs)YesChange
Staff carrying out aerosol generating procedures, wear fit-tested and FFP3 masksAllChange

Staffing

You use agency staff or share staff with other care settingsYesChange
Number of additional agency staff or staff shared with settings you have used during this outbreakFewer than 5Change

Now send your report

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth.

", - "schema": {} - } - ], - "next": [] - }, - { - "path": "/reportSent", - "title": "", - "components": [ - { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

Report sent

Your reference number
OS-5371

Your outbreak reference number

Your reference number is: OS-5371. Use this number if you need to contact the UKHSA health protection team about your outbreak.

What happens next

We will send 2 automated emails to Pel@coy.com.

An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk outbreak, a medium-risk outbreak, a high-priority outbreak, or a single case of flu.

An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team or community infection control team.

If your outbreak is high priority on a weekend or bank holiday

If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team. Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

If you need urgent medical advice

If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

Give feedback on this service

This is a new service. Help us improve it and give your feedback.

", - "schema": {} - } - ] - } - ], - "lists": [ - { - "title": "yes-no-sure", - "name": "YesNoSure", - "type": "string", - "items": [ - { - "text": "Yes", - "value": "Yes" - }, - { - "text": "No", - "value": "No" - }, - { - "text": "Not sure", - "value": "Not sure" - } - ] - }, - { - "title": "infection-types", - "name": "InfectionTypes", - "type": "string", - "items": [ - { - "text": "COVID-19", - "value": "COVID-19" - }, - { - "text": "Flu", - "value": "Flu" - }, - { - "text": "Any other acute respiratory infections", - "value": "Any other acute respiratory infections", - "description": "including viruses such as respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus" - } - ] - }, - { - "title": "ari-infection-types", - "name": "ARIInfectionType", - "type": "string", - "items": [ - { - "text": "Adenovirus", - "value": "Adenovirus" - }, - { - "text": "Human Metapneumovirus (hMPV)", - "value": "Human Metapneumovirus (hMPV)" - }, - { - "text": "Parainfluenza", - "value": "Parainfluenza" - }, - { - "text": "Respiratory Syncytial Virus (RSV)", - "value": "Respiratory Syncytial Virus (RSV)" - }, - { - "text": "Rhinovirus", - "value": "Rhinovirus" - }, - { - "text": "Other acute respiratory infection", - "value": "Other" - } - ] - }, - { - "title": "social-care-provider-type", - "name": "MpSRIP", - "type": "string", - "items": [ - { - "text": "Residential care home", - "value": "Residential care home" - }, - { - "text": "Nursing care home", - "value": "Nursing care home" - }, - { - "text": "Residential and nursing care home", - "value": "Residential and nursing care home" - }, - { - "text": "Supported living", - "value": "Supported living or extra care (not high risk)" - }, - { - "text": "Extra care", - "value": "Extra care" - }, - { - "text": "Domiciliary or home care", - "value": "Domiciliary or home care" - }, - { - "text": "Rehabilitation, reablement or respite", - "value": "Rehabilitation, reablement or respite" - }, - { - "text": "Other adult social care", - "value": "Other" - } - ] - }, - { - "title": "one-or-more", - "name": "OneOrMore", - "type": "string", - "items": [ - { - "text": "1", - "value": "One" - }, - { - "text": "2 or more", - "value": "2 or more" - } - ] - }, - { - "title": "service-or-staff", - "name": "ServiceOrStaff", - "type": "string", - "items": [ - { - "text": "Service user", - "value": "Service user" - }, - { - "text": "Staff", - "value": "Staff" - } - ] - }, - { - "title": "service-or-staff-multiple", - "name": "ServiceOrStaffMultiple", - "type": "string", - "items": [ - { - "text": "Service users", - "value": "Service users" - }, - { - "text": "Staff", - "value": "Staff" - } - ] - }, - { - "title": "ipc-practices", - "name": "IPCPractices", - "type": "string", - "items": [ - { - "text": "more than once a month", - "value": "more than once a month" - }, - { - "text": "every 1 to 6 months", - "value": "every 1 to 6 months" - }, - { - "text": "every 7 to 12 months", - "value": "every 7 to 12 months" - }, - { - "text": "less than every 12 months", - "value": "less than every 12 months" - }, - { - "text": "we do not monitor infection prevention and control practices", - "value": "we do not monitor infection prevention and control practices" - } - ] - }, - { - "title": "case-numbers", - "name": "CaseNumbers", - "type": "string", - "items": [ - { - "text": "0", - "value": "None" - }, - { - "text": "1", - "value": "One" - }, - { - "text": "2 to 3", - "value": "2 to 3" - }, - { - "text": "4 to 5", - "value": "4 to 5" - }, - { - "text": "More than 5", - "value": "More than 5" - }, - { - "text": "I do not know", - "value": "I do not know" - } - ] - }, - { - "title": "issues", - "name": "Issues", - "type": "string", - "items": [ - { - "text": "COVID-19: access to treatments", - "value": "COVID-19: access to treatments" - }, - { - "text": "COVID-19: LFD test kit supply", - "value": "COVID-19: LFD test kit supply" - }, - { - "text": "Hand hygiene", - "value": "Hand hygiene" - }, - { - "text": "Keeping symptomatic service users away from others", - "value": "Keeping symptomatic service users away from others" - }, - { - "text": "New admissions or transfer of service users", - "value": "New admissions or transfer of service users" - }, - { - "text": "Staffing", - "value": "Staffing" - }, - { - "text": "Supply of PPE", - "value": "Supply of PPE" - }, - { - "text": "Use of PPE", - "value": "Use of PPE" - }, - { - "text": "Visits", - "value": "Visits" - }, - { - "text": "Waste, cleaning or laundry", - "value": "Waste, cleaning or laundry" - }, - { - "text": "No issues", - "value": "No issues" - } - ] - }, - { - "title": "ffp3-masks", - "name": "FFP3Masks", - "type": "string", - "items": [ - { - "text": "All", - "value": "All" - }, - { - "text": "Some", - "value": "Some" - }, - { - "text": "None", - "value": "None" - }, - { - "text": "I do not know", - "value": "I do not know" - } - ] - }, - { - "title": "additional-staff", - "name": "AdditionalStaff", - "type": "string", - "items": [ - { - "text": "Fewer than 5", - "value": "Fewer than 5" - }, - { - "text": "5 or more", - "value": "5 or more" - } - ] - }, - { - "title": "service-users-types", - "name": "ServiceUsersTypes", - "type": "string", - "items": [ - { - "text": "People with learning difficulties or learning disabilities", - "value": "People with learning difficulties or learning disabilities" - }, - { - "text": "People with physical disabilities or severe medical conditions", - "value": "People with physical disabilities or severe medical conditions" - }, - { - "text": "People with mental health needs", - "value": "People with mental health needs" - }, - { - "text": "People with substance misuse issues", - "value": "People with substance misuse issues" - }, - { - "text": "People living with dementia", - "value": "People living with dementia" - }, - { - "text": "Under 65 years", - "value": "Under 65 years" - }, - { - "text": "65 years or over", - "value": "65 years or over" - } - ] - }, - { - "title": "HPTs", - "name": "sjgMDe", - "type": "string", - "items": [ - { - "text": "East of England HPT", - "value": "East of England HPT" - }, - { - "text": "West Midlands HPT", - "value": "West Midlands HPT" - }, - { - "text": "South West HPT", - "value": "South West HPT" - } - ] - }, - { - "title": "flu-severity-specific-area", - "name": "FluSeveritySpecificArea", - "type": "string", - "items": [ - { - "text": "Cases are all within one specific area", - "value": "Cases are all within one specific area" - }, - { - "text": "Cases are across more than one area", - "value": "Cases are across more than one area" - }, - { - "text": "Not sure", - "value": "Not sure" - }, - { - "text": "Not applicable to my setting (for example, not residential)", - "value": "Not applicable to my setting (for example, not residential)" - } - ] - } - ], - "sections": [ - { - "name": "AcuteInfections", - "title": "Acute respiratory infections in your setting" - }, - { - "name": "Covid19InYourSetting", - "title": "COVID-19 in your setting" - }, - { - "name": "OtherInYourSetting", - "title": "Other infections in your setting" - }, - { - "name": "InfectionYouAreReporting", - "title": "Infection you are reporting" - }, - { - "name": "InfectionsYouAreReporting", - "title": "Infections you are reporting" - }, - { - "name": "InfectionsInYourSetting", - "title": "Infections in your setting" - }, - { - "name": "SeverityOfIllness", - "title": "Severity of illness" - }, - { - "name": "SymptomStartDates", - "title": "Symptom start dates" - }, - { - "name": "Vaccination", - "title": "Vaccination" - }, - { - "name": "Summary", - "title": "Summary" - }, - { - "name": "SettingDetails", - "title": "Setting details" - }, - { - "name": "PeopleInYourSetting", - "title": "People in your setting" - }, - { - "name": "YourSetting", - "title": "Your setting" - }, - { - "name": "FluAndChestInfectionInYourSetting", - "title": "Flu and chest infection in your setting" - }, - { - "name": "InfectionPreventionAndControl", - "title": "Infection prevention and control" - }, - { - "name": "Staff", - "title": "Staff" - }, - { - "name": "ConfirmedOrUnknownARI", - "title": "Confirmed or unknown acute respiratory infection" - }, - { - "name": "FluInYourSetting", - "title": "Flu in your setting" - } - ], - "conditions": [ - { - "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Adenovirus", - "display": "Adenovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Human Metapneumovirus (hMPV)", - "display": "Human Metapneumovirus (hMPV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Parainfluenza", - "display": "Parainfluenza" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Respiratory Syncytial Virus (RSV)", - "display": "Respiratory Syncytial Virus (RSV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Rhinovirus", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Other acute respiratory infection", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Adenovirus", - "display": "Adenovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Human Metapneumovirus (hMPV)", - "display": "Human Metapneumovirus (hMPV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Parainfluenza", - "display": "Parainfluenza" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Respiratory Syncytial Virus (RSV)", - "display": "Respiratory Syncytial Virus (RSV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Rhinovirus", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Other acute respiratory infection", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "PositiveARI:No", - "name": "PositiveARI:No", - "value": { - "name": "PositiveARI:No", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.PositiveARI", - "type": "YesNoField", - "display": "Do you have any positive test results for an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "TwoOrMoreARI:No", - "name": "TwoOrMoreARI:No", - "value": { - "name": "TwoOrMoreARI:No", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreARI", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "TwoOrMoreCovid:No", - "name": "TwoOrMoreCovid:No", - "value": { - "name": "TwoOrMoreCovid:No", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:FLU", - "name": "WhichARI:FLU", - "value": { - "name": "WhichARI:FLU", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER", - "name": "WhichARI:COVID19ANDOTHER", - "value": { - "name": "WhichARI:COVID19ANDOTHER", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDFLU", - "name": "WhichARI:COVID19ANDFLU", - "value": { - "name": "WhichARI:COVID19ANDFLU", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "value": { - "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "value": { - "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of COVID-19?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "true", - "display": "true" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreARI", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "value": { - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of COVID-19?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "value": { - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", - "type": "RadiosField", - "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", - "type": "RadiosField", - "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - - { - "displayName": "WhichARI:COVID19", - "name": "WhichARI:COVID19", - "value": { - "name": "WhichARI:COVID19", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - } - ] - } - }, - { - "displayName": "WhichARI:Other", - "name": "WhichARI:Other", - "value": { - "name": "WhichARI:Other", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndFlu", - "name": "WhichARI:CovidAndFlu", - "value": { - "name": "WhichARI:CovidAndFlu", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndOther", - "name": "WhichARI:CovidAndOther", - "value": { - "name": "WhichARI:CovidAndOther", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidFluAndConfirmedARI", - "name": "WhichARI:CovidFluAndConfirmedARI", - "value": { - "name": "WhichARI:CovidFluAndConfirmedARI", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", - "value": { - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", - "value": { - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "value": { - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "WhichARI:Covid&ARIServiceOrStaff:Staff", - "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", - "value": { - "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", - "value": { - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "WhichARI:Flu&ARIServiceOrStaff:Staff", - "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", - "value": { - "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "WhichOtherARI:Adenovirus", - "name": "WhichOtherARI:Adenovirus", - "value": { - "name": "WhichOtherARI:Adenovirus", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", - "type": "RadiosField", - "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - } - ] - } - }, - { - "displayName": "ReportCovid:No", - "name": "ReportCovid:No", - "value": { - "name": "ReportCovid:No", - "conditions": [ - { - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", - "type": "RadiosField", - "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", - "type": "RadiosField", - "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - } - ] - } - }, - { - "displayName": "TwoOrMoreCasesNotCovidFlu:YES", - "name": "TwoOrMoreCasesNotCovidFlu:YES", - "value": { - "name": "TwoOrMoreCasesNotCovidFlu:YES", - "conditions": [ - { - "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "true", - "display": "true" - } - } - ] - } - }, - { - "displayName": "SingleCaseOfFluServiceOrStaff:ServiceUser", - "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", - "value": { - "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.SingleCaseOfFluServiceOrStaff", - "type": "RadiosField", - "display": "Who has the case of flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "Service user", - "display": "Service user" - } - } - ] - } - }, - { - "displayName": "NumberOfCasesOfFlu:One", - "name": "NumberOfCasesOfFlu:One", - "value": { - "name": "NumberOfCasesOfFlu:One", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.NumberOfCasesOfFlu", - "type": "RadiosField", - "display": "How many cases of flu are you reporting?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "One", - "display": "1" - } - } - ] - } - }, - { - "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", - "value": { - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of flu in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", - "value": { - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of flu in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of flu in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "CovidServiceOrStaff:ServiceUsers", - "name": "CovidServiceOrStaff:ServiceUsers", - "value": { - "name": "CovidServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "CovidServiceOrStaff:Staff", - "name": "CovidServiceOrStaff:Staff", - "value": { - "name": "CovidServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "CovidServiceOrStaff:Both", - "name": "CovidServiceOrStaff:Both", - "value": { - "name": "CovidServiceOrStaff:Both", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIServiceOrStaff:ServiceUsers", - "name": "ARIServiceOrStaff:ServiceUsers", - "value": { - "name": "ARIServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIServiceOrStaff:Staff", - "name": "ARIServiceOrStaff:Staff", - "value": { - "name": "ARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIServiceOrStaff:Both", - "name": "ARIServiceOrStaff:Both", - "value": { - "name": "ARIServiceOrStaff:Both", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "AGPs:yes", - "name": "AGPs:yes", - "value": { - "name": "AGPs:yes", - "conditions": [ - { - "field": { - "name": "InfectionPreventionAndControl.AGPs", - "type": "YesNoField", - "display": "Does your setting undertake aerosol generating procedures (AGPs)?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "true", - "display": "true" - } - } - ] - } - }, - { - "displayName": "AgencyStaff:No", - "name": "AgencyStaff:No", - "value": { - "name": "AgencyStaff:No", - "conditions": [ - { - "field": { - "name": "Staff.AgencyStaff", - "type": "YesNoField", - "display": "Do you use agency staff or share staff with other care settings?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - } - ], - "fees": [], - "outputs": [ - { - "name": "WEBHOOOK", - "title": "CareOBRA SalesForce", - "type": "webhook", - "outputConfiguration": { - "url": "${Webhook.URL}" - } - } - ], - "version": 2, - "skipSummary": false, - "declaration": "
\n

Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.
\n

By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth

\n
\n", - "name": "Report an outbreak", - "feedback": { - "feedbackForm": true, - "url": "" - }, - "phaseBanner": { - "phase": "beta" - }, - "specialPages": { - "confirmationPage": { - "customText": { - "nextSteps": "We will send 2 automated emails to {{ S1Q8 }}", - "title": "Report sent" - } - } - } -} From 9cb521a6331a16706e3accd59f79282528553b81 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 27 Jan 2025 16:16:41 +0000 Subject: [PATCH 046/403] fix spelling --- .../pageControllers/CheckpointSummaryPageController.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts index a4cd390580..4bcc75f72e 100644 --- a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts @@ -4,7 +4,7 @@ import { PageController } from "server/plugins/engine/pageControllers/PageContro import { FormComponent } from "server/plugins/engine/components"; import { PageControllerBase } from "server/plugins/engine/pageControllers/PageControllerBase"; import { FormModel } from "server/plugins/engine/models"; -import { CheckpointSummaryPageC } from "@xgovformbuilder/model"; +import { CheckpointSummaryPage } from "@xgovformbuilder/model"; const DEFAULT_OPTIONS = { customText: {}, @@ -12,9 +12,9 @@ const DEFAULT_OPTIONS = { export class CheckpointSummaryPageController extends PageController { returnUrlParameter: string; - options: CheckpointSummaryPageC["options"]; + options: CheckpointSummaryPage["options"]; - constructor(model: FormModel, pageDef: CheckpointSummaryPageC) { + constructor(model: FormModel, pageDef: CheckpointSummaryPage) { super(model, pageDef); const returnPath = `/${this.model.basePath}${this.path}`; From 53c22672bcada8ce5337d368b4c14e7526433d64 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 28 Jan 2025 10:59:31 +0000 Subject: [PATCH 047/403] change view name to checkpoint-summary --- .../engine/pageControllers/CheckpointSummaryPageController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts index 4bcc75f72e..49bc722ae7 100644 --- a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts @@ -31,7 +31,7 @@ export class CheckpointSummaryPageController extends PageController { const viewModel = await this.summaryViewModel(request); - return h.view("non-submitting-summary", viewModel); + return h.view("checkpoint-summary", viewModel); }; } From b3d2d5b16805392d067c1c1efd88ca83018c8324 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:53:05 +0000 Subject: [PATCH 048/403] latest multi infection journeys --- runner/src/server/forms/ReportAnOutbreak.json | 811 ++++++++++++++---- 1 file changed, 634 insertions(+), 177 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index ea8028ee6a..5d5f37f618 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -31,7 +31,7 @@ "path": "/setting", "title": "What type of adult social care do you provide?", "section": "YourSetting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ { @@ -59,7 +59,7 @@ "path": "/positive-ari", "title": "Do you have any positive test results for an acute respiratory infection?", "section": "InfectionsYouAreReporting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ { @@ -82,7 +82,6 @@ "path": "/2-or-more-ari", "condition": "PositiveARI:No" }, - { "path": "/which-ari" } @@ -92,7 +91,7 @@ "path": "/which-ari", "title": "Which acute respiratory infections do you have a positive test result for?", "section": "InfectionsYouAreReporting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ { @@ -119,16 +118,24 @@ "path": "/2-or-more-covid-descriptive", "condition": "WhichARI:COVID19ANDFLU" }, - { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, - { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, - { "path": "/2-or-more-cases-not-covid-or-flu" } + { + "path": "/2-or-more-covid", + "condition": "WhichARI:COVID19" + }, + { + "path": "/cases-of-flu", + "condition": "WhichARI:FLU" + }, + { + "path": "/2-or-more-cases-not-covid-or-flu" + } ] }, { "path": "/2-or-more-covid", "title": "Are you reporting 2 or more cases?", "section": "InfectionsYouAreReporting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { @@ -195,7 +202,7 @@ "path": "/2-or-more-covid-details", "title": "Acute respiratory infections in your setting", "section": "InfectionsYouAreReporting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { @@ -251,7 +258,7 @@ "path": "/2-or-more-ari", "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "section": "InfectionYouAreReporting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { @@ -281,7 +288,7 @@ "path": "/do-not-need-to-report", "title": "You do not need to report", "section": "InfectionsYouAreReporting", - "controller": "NonSubmittingSummaryPageController", + "controller": "CheckpointSummaryPageController", "options": { "customText": { "insetText": "Based on your answers, you do not need to report this acute respiratory infection.", @@ -294,7 +301,7 @@ "path": "/do-not-need-to-report-multiple", "title": "You do not need to report", "section": "InfectionsYouAreReporting", - "controller": "NonSubmittingSummaryPageController", + "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true, "customText": { @@ -308,7 +315,7 @@ "path": "/2-or-more-cases-not-covid-or-flu", "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", "section": "InfectionYouAreReporting", - "sectionForSummaryPages": "AcuteInfections", + "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "OtherInYourSetting", "components": [ { @@ -355,17 +362,32 @@ "path": "/mid-way-summary", "title": "Check your answers before continuing", "section": "InfectionsYouAreReporting", - "controller": "NonSubmittingSummaryPageController", + "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true }, "components": [] }, + { + "path": "/mid-way-summary-covid-yes-flu-yes-other-yes", + "title": "Check your answers before continuing", + "section": "InfectionsYouAreReporting", + "controller": "CheckpointSummaryPageController", + "options": { + "multiSummary": true + }, + "components": [], + "next": [ + { + "path": "/other-ari-confirmed-cases-setting" + } + ] + }, { "path": "/mid-way-summary-covid-yes-other-no", "title": "Check your answers before continuing", "section": "InfectionsYouAreReporting", - "controller": "NonSubmittingSummaryPageController", + "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true, "customText": { @@ -378,7 +400,7 @@ "path": "/mid-way-summary-covid-no-other-yes", "title": "Check your answers before continuing", "section": "InfectionsYouAreReporting", - "controller": "NonSubmittingSummaryPageController", + "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true, "customText": { @@ -409,6 +431,10 @@ } ], "next": [ + { + "condition": "WhichARI:COVID19&FLU&OTHER", + "path": "/mid-way-summary-covid-yes-flu-yes-other-yes" + }, { "condition": "WhichARI:COVID19ANDOTHER", "path": "/mid-way-summary" @@ -466,8 +492,28 @@ ], "next": [ { - "path": "/staff-ari-confirmed", - "condition": "ARIServiceOrStaff:Staff" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" }, { "path": "/severity-of-illness" @@ -492,7 +538,27 @@ ], "next": [ { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -514,7 +580,23 @@ ], "next": [ { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -536,7 +618,19 @@ ], "next": [ { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -558,12 +652,46 @@ ], "next": [ { - "path": "/service-users-other" + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-ari-rhinovirus", + "title": "Service users: number of rhinovirus cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "name": "ServiceUsersRhinovirus", + "type": "NumberField", + "title": "How many service users have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital or on visits out", + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, { - "path": "/service-users-other", + "path": "/service-users-ari-other", "title": "Service users: number of other acute respiratory infection cases", "section": "InfectionsInYourSetting", "components": [ @@ -580,7 +708,7 @@ ], "next": [ { - "path": "/staff-ari-adenovirus" + "path": "/staff-master" } ] }, @@ -602,7 +730,27 @@ ], "next": [ { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/staff-ari-cases" } ] }, @@ -624,7 +772,23 @@ ], "next": [ { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/staff-ari-cases" } ] }, @@ -646,7 +810,19 @@ ], "next": [ { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/staff-ari-cases" } ] }, @@ -668,7 +844,15 @@ ], "next": [ { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/staff-ari-cases" } ] }, @@ -678,9 +862,9 @@ "section": "InfectionsInYourSetting", "components": [ { - "name": "ServiceUsersRhinovirus", + "name": "StaffRhinovirus", "type": "NumberField", - "title": "How many service users have tested positive for rhinovirus?", + "title": "How many staff have tested positive for rhinovirus?", "hint": "Include those who are currently in hospital or on visits out", "schema": { "min": 0, @@ -690,12 +874,16 @@ ], "next": [ { - "path": "/staff-other" + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/staff-ari-cases" } ] }, { - "path": "/staff-other", + "path": "/staff-ari-other", "title": "Staff: number of other acute respiratory infection cases", "section": "InfectionsInYourSetting", "components": [ @@ -1000,7 +1188,6 @@ "type": "Para", "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." }, - { "name": "StaffFluSwabTest", "options": {}, @@ -1240,7 +1427,7 @@ "next": [ { "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-unknown" + "path": "/service-users-ari-other" }, { "path": "/staff-ari-unknown" @@ -1268,6 +1455,10 @@ } ], "next": [ + { + "condition": "WhichARI:COVID19&FLU&OTHER", + "path": "/service-users-master" + }, { "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-adenovirus" @@ -1285,12 +1476,39 @@ "path": "/service-users-ari-rsv" }, { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-unknown" + "path": "/service-users-ari-other" + }, + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/service-users-master" } ] }, @@ -1583,27 +1801,59 @@ "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

Include those who are currently in hospital or on visits out
If none, enter 0", "schema": {}, "options": {} + } + ], + "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-adenovirus" }, { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", - "schema": {}, - "options": {} + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" }, { - "name": "ServiceUsersNotTested", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", - "schema": {}, - "options": {} - } - ], - "next": [ + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, { - "path": "/staff-master" + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -1618,8 +1868,7 @@ "title": "How many staff have COVID-19 confirmed by a positive test?", "hint": "Include those who are currently in hospital or on visits out", "options": { - "required": true, - "condition": "covid19" + "required": true }, "schema": { "min": 0 @@ -1646,12 +1895,6 @@ "title": "How many staff have been diagnosed with a chest infection by a GP?", "hint": "Include those who are currently in hospital or on visits out
If none, enter 0" }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out" - }, { "name": "StaffSymptomsNotTested", "type": "NumberField", @@ -1660,6 +1903,33 @@ } ], "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" + }, { "path": "/severity-of-illness" } @@ -2533,7 +2803,9 @@ }, { "name": "EmptyBeds", - "options": { "required": false }, + "options": { + "required": false + }, "type": "NumberField", "schema": { "min": 0, @@ -2646,7 +2918,7 @@ }, { "text": "Other acute respiratory infection", - "value": "Other" + "value": "Other acute respiratory infection" } ] }, @@ -2685,7 +2957,7 @@ }, { "text": "Other adult social care", - "value": "Other" + "value": "Other adult social care" } ] }, @@ -3021,24 +3293,240 @@ "title": "Infection prevention and control" }, { - "name": "Staff", - "title": "Staff" + "name": "Staff", + "title": "Staff" + }, + { + "name": "ConfirmedOrUnknownARI", + "title": "Confirmed or unknown acute respiratory infection" + }, + { + "name": "FluInYourSetting", + "title": "Flu in your setting" + } + ], + "conditions": [ + { + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Adenovirus", + "display": "Adenovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Parainfluenza", + "display": "Parainfluenza" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Rhinovirus", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } }, { - "name": "ConfirmedOrUnknownARI", - "title": "Confirmed or unknown acute respiratory infection" + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "InfectionYouAreReporting.ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Other acute respiratory infection", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } }, { - "name": "FluInYourSetting", - "title": "Flu in your setting" - } - ], - "conditions": [ - { - "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", "value": { - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { @@ -3063,18 +3551,18 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "value": { - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { @@ -3099,18 +3587,18 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "value": { - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { @@ -3135,18 +3623,18 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "value": { - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { @@ -3171,18 +3659,18 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "value": { - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { @@ -3207,18 +3695,18 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "value": { - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { @@ -3243,8 +3731,8 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] @@ -3338,6 +3826,56 @@ ] } }, + { + "displayName": "WhichARI:COVID19&FLU&OTHER", + "name": "WhichARI:COVID19&FLU&OTHER", + "value": { + "name": "WhichARI:COVID19&FLU&OTHER", + "conditions": [ + { + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "InfectionsYouAreReporting.WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infections do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" + } + } + ] + } + }, { "displayName": "WhichARI:COVID19ANDOTHER", "name": "WhichARI:COVID19ANDOTHER", @@ -3680,7 +4218,6 @@ ] } }, - { "displayName": "WhichARI:COVID19", "name": "WhichARI:COVID19", @@ -4761,86 +5298,6 @@ ] } }, - { - "displayName": "ConfirmedARIServiceStaff:Both", - "name": "ConfirmedARIServiceStaff:Both", - "value": { - "name": "ConfirmedARIServiceStaff:Both", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases of adenovirus in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service user", - "display": "Service user" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases of adenovirus in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ConfirmedARIServiceStaff:ServiceUsers", - "name": "ConfirmedARIServiceStaff:ServiceUsers", - "value": { - "name": "ConfirmedARIServiceStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases of adenovirus in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service user", - "display": "Service user" - } - } - ] - } - }, - { - "displayName": "ConfirmedARIServiceStaff:Staff", - "name": "ConfirmedARIServiceStaff:Staff", - "value": { - "name": "ConfirmedARIServiceStaff:Staff", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.ConfirmedARIServiceStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases of adenovirus in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, { "displayName": "AGPs:yes", "name": "AGPs:yes", From bdc7c9a68186400195ce48b8fcf5ea0c44af8d03 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:49:10 +0000 Subject: [PATCH 049/403] set allowUserTemplates to true --- runner/config/default.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index afcd11e52f..d37c148e25 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - sessionCookiePassword: "${SessionCookies.Password}", - redisHost: "${Redis.Host}", - redisPort: 6379, - redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - redisTls: true, //run in TLS mode + // sessionCookiePassword: "${SessionCookies.Password}", + // redisHost: "${Redis.Host}", + // redisPort: 6379, + // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + // redisTls: true, //run in TLS mode /** * SSL @@ -142,7 +142,7 @@ module.exports = { queueServicePollingInterval: "500", // How frequently to check the queue for a reference number queueServicePollingTimeout: "2000", // Total time to wait for a reference number - allowUserTemplates: false, + allowUserTemplates: true, /** * File size errors From 1a47c7b08f768776360c2e8fdd3f9a46aaffe510 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:49:53 +0000 Subject: [PATCH 050/403] uncomment settings --- runner/config/default.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index d37c148e25..9529207914 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - // sessionCookiePassword: "${SessionCookies.Password}", - // redisHost: "${Redis.Host}", - // redisPort: 6379, - // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - // redisTls: true, //run in TLS mode + sessionCookiePassword: "${SessionCookies.Password}", + redisHost: "${Redis.Host}", + redisPort: 6379, + redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + redisTls: true, //run in TLS mode /** * SSL From d3b25698e595409d5560a420292652b4dc89f6a1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:59:05 +0000 Subject: [PATCH 051/403] add in details for report sent --- runner/src/server/forms/ReportAnOutbreak.json | 195 +++++++++--------- 1 file changed, 102 insertions(+), 93 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 5d5f37f618..8cc217bf22 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -118,17 +118,9 @@ "path": "/2-or-more-covid-descriptive", "condition": "WhichARI:COVID19ANDFLU" }, - { - "path": "/2-or-more-covid", - "condition": "WhichARI:COVID19" - }, - { - "path": "/cases-of-flu", - "condition": "WhichARI:FLU" - }, - { - "path": "/2-or-more-cases-not-covid-or-flu" - } + { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, + { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, + { "path": "/2-or-more-cases-not-covid-or-flu" } ] }, { @@ -492,31 +484,28 @@ ], "next": [ { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-adenovirus" }, { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" }, { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" }, { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" }, { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" + "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" }, { - "path": "/severity-of-illness" + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" } ] }, @@ -708,7 +697,11 @@ ], "next": [ { - "path": "/staff-master" + "condition": "OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-cases" + }, + { + "path": "/severity-of-illness" } ] }, @@ -750,7 +743,7 @@ "path": "/staff-ari-other" }, { - "path": "/staff-ari-cases" + "path": "/severity-of-illness" } ] }, @@ -788,7 +781,7 @@ "path": "/staff-ari-other" }, { - "path": "/staff-ari-cases" + "path": "/severity-of-illness" } ] }, @@ -822,7 +815,7 @@ "path": "/staff-ari-other" }, { - "path": "/staff-ari-cases" + "path": "/severity-of-illness" } ] }, @@ -852,7 +845,7 @@ "path": "/staff-ari-other" }, { - "path": "/staff-ari-cases" + "path": "/severity-of-illness" } ] }, @@ -878,7 +871,7 @@ "path": "/staff-ari-other" }, { - "path": "/staff-ari-cases" + "path": "/severity-of-illness" } ] }, @@ -1188,6 +1181,7 @@ "type": "Para", "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." }, + { "name": "StaffFluSwabTest", "options": {}, @@ -1460,52 +1454,12 @@ "path": "/service-users-master" }, { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" + "condition": "OtherARIServiceOrStaff:ServiceUsers", + "path": "/service-users-ari-confirmed" }, { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" + "condition": "OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-cases" }, { "path": "/service-users-master" @@ -1750,6 +1704,30 @@ } ], "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, { "path": "/severity-of-illness" } @@ -2803,9 +2781,7 @@ }, { "name": "EmptyBeds", - "options": { - "required": false - }, + "options": { "required": false }, "type": "NumberField", "schema": { "min": 0, @@ -2836,19 +2812,6 @@ } ], "next": [] - }, - { - "path": "/reportSent", - "title": "", - "components": [ - { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

Report sent

Your reference number
OS-5371

Your outbreak reference number

Your reference number is: OS-5371. Use this number if you need to contact the UKHSA health protection team about your outbreak.

What happens next

We will send 2 automated emails to Pel@coy.com.

An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk outbreak, a medium-risk outbreak, a high-priority outbreak, or a single case of flu.

An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team or community infection control team.

If your outbreak is high priority on a weekend or bank holiday

If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team. Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

If you need urgent medical advice

If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

Give feedback on this service

This is a new service. Help us improve it and give your feedback.

", - "schema": {} - } - ] } ], "lists": [ @@ -3305,7 +3268,52 @@ "title": "Flu in your setting" } ], + "conditions": [ + { + "displayName": "OtherARIServiceOrStaff:ServiceUsers", + "name": "OtherARIServiceOrStaff:ServiceUsers", + "value": { + "name": "OtherARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "OtherARIServiceOrStaff:Staff", + "name": "OtherARIServiceOrStaff:Staff", + "value": { + "name": "OtherARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", @@ -4218,6 +4226,7 @@ ] } }, + { "displayName": "WhichARI:COVID19", "name": "WhichARI:COVID19", @@ -5368,7 +5377,7 @@ "specialPages": { "confirmationPage": { "customText": { - "nextSteps": "We will send 2 automated emails to {{ S1Q8 }}", + "nextSteps": "

Your outbreak reference number

Your reference number is: TEST. Use this number if you need to contact the UKHSA health protection team about your outbreak.

What happens next

We will send 2 automated emails to {{ MainContactEmailAddress }}. An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu. An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team. If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

If your outbreak is high priority on a weekend or bank holiday

If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

If you need urgent medical advice

If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

Give feedback on this service

This is a new service. Help us improve it and give your feedback (opens in new tab).

", "title": "Report sent" } } From 29b84057f0938af5828f5dd1ece2a75c9fde8093 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:15:19 +0000 Subject: [PATCH 052/403] CAR-272 bug fix - make yes/no radio fields vertical instead of horizontal --- runner/src/server/forms/ReportAnOutbreak.json | 77 +++++++++++++------ 1 file changed, 52 insertions(+), 25 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8cc217bf22..8e7533283e 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -67,7 +67,8 @@ "options": { "summaryTitle": "Positive test result" }, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Do you have any positive test results for an acute respiratory infection?", "hint": "The infection must have been confirmed by a test, for example a lateral flow test, flu swab test or a laboratory test.", @@ -136,7 +137,8 @@ }, { "name": "TwoOrMoreCovid", - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "options": { "summaryTitle": "2 or more cases" @@ -172,7 +174,8 @@ "options": { "summaryTitle": "2 or more cases" }, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": " ", "values": { @@ -258,7 +261,8 @@ "options": { "summaryTitle": "2 or more cases" }, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "values": { @@ -315,7 +319,8 @@ "options": { "summaryTitle": "2 or more cases" }, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", "hint": "This includes viruses such as respiratory syncytial virus, rhinovirus, parainfluenza and chest infections", @@ -1272,7 +1277,8 @@ { "name": "SingleCaseOfFluSeverityCalledGP", "options": {}, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Have you called the GP because of the severity of illness in this case?", "values": { @@ -1282,7 +1288,8 @@ { "name": "SingleCaseOfFluSeverityHospitalised", "options": {}, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Has the person been hospitalised with the flu?", "values": { @@ -1292,7 +1299,8 @@ { "name": "SingleCaseOfFluSeverityDeath", "options": {}, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Has the person died with flu in this case?", "values": { @@ -1945,7 +1953,8 @@ { "name": "AGPs", "options": {}, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Does your setting undertake aerosol generating procedures (AGPs)?", "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", @@ -1958,7 +1967,8 @@ "options": { "required": false }, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Are you aware of any media interest in this outbreak?", "values": { @@ -2499,7 +2509,8 @@ { "name": "AgencyStaff", "options": {}, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Do you use agency staff or share staff with other care settings?", "values": { @@ -2595,7 +2606,8 @@ { "name": "CQCRegistered", "options": {}, - "type": "YesNoField", + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, "title": "Is your care setting registered with the Care Quality Commission (CQC)?", "values": { @@ -2815,6 +2827,21 @@ } ], "lists": [ + { + "title": "yes-no", + "name": "YesNo", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "true" + }, + { + "text": "No", + "value": "false" + } + ] + }, { "title": "yes-no-sure", "name": "YesNoSure", @@ -3755,7 +3782,7 @@ { "field": { "name": "InfectionsYouAreReporting.PositiveARI", - "type": "YesNoField", + "type": "RadiosField", "display": "Do you have any positive test results for an acute respiratory infection?" }, "operator": "is", @@ -3777,7 +3804,7 @@ { "field": { "name": "InfectionYouAreReporting.TwoOrMoreARI", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection?" }, "operator": "is", @@ -3799,7 +3826,7 @@ { "field": { "name": "InfectionsYouAreReporting.TwoOrMoreCovid", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases?" }, "operator": "is", @@ -3993,7 +4020,7 @@ "coordinator": "and", "field": { "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", + "type": "RadiosField", "display": "Which acute respiratory infections do you have a positive test result for?" }, "operator": "is", @@ -4007,7 +4034,7 @@ "coordinator": "and", "field": { "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, "operator": "is", @@ -4057,7 +4084,7 @@ "coordinator": "and", "field": { "name": "InfectionsYouAreReporting.TwoOrMoreCovid", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of COVID-19?" }, "operator": "is", @@ -4071,7 +4098,7 @@ "coordinator": "and", "field": { "name": "InfectionYouAreReporting.TwoOrMoreARI", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection?" }, "operator": "is", @@ -4121,7 +4148,7 @@ "coordinator": "and", "field": { "name": "InfectionsYouAreReporting.TwoOrMoreCovid", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of COVID-19?" }, "operator": "is", @@ -4135,7 +4162,7 @@ "coordinator": "and", "field": { "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, "operator": "is", @@ -4213,7 +4240,7 @@ "coordinator": "and", "field": { "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, "operator": "is", @@ -5032,7 +5059,7 @@ { "field": { "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", - "type": "YesNoField", + "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, "operator": "is", @@ -5316,7 +5343,7 @@ { "field": { "name": "InfectionPreventionAndControl.AGPs", - "type": "YesNoField", + "type": "RadiosField", "display": "Does your setting undertake aerosol generating procedures (AGPs)?" }, "operator": "is", @@ -5338,7 +5365,7 @@ { "field": { "name": "Staff.AgencyStaff", - "type": "YesNoField", + "type": "RadiosField", "display": "Do you use agency staff or share staff with other care settings?" }, "operator": "is", From 594cd3901520017d25da9ed351c4771d2e5fea65 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:58:01 +0000 Subject: [PATCH 053/403] CAR-315 fix routing and content of staff covid cases page --- runner/src/server/forms/ReportAnOutbreak.json | 98 ++++++++----------- 1 file changed, 41 insertions(+), 57 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8e7533283e..bf08301141 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2092,7 +2092,7 @@ "next": [ { "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff", - "path": "/staff-covid-cases" + "path": "/staff-covid" }, { "path": "/severity-of-illness" @@ -2157,6 +2157,46 @@ } ] }, + { + "path": "/staff-covid", + "title": "Staff: number of cases", + "section": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." + }, + { + "type": "NumberField", + "name": "StaffCovidTestPositive", + "title": "How many service users have COVID-19 confirmed by a positive test?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + }, + { + "type": "NumberField", + "name": "StaffSymptomsNotTested", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "options": { + "required": true + }, + "schema": { + "min": 0 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, { "path": "/staff-covid-flu", "title": "Staff: number of cases", @@ -2422,62 +2462,6 @@ } ] }, - { - "path": "/staff-covid-cases", - "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", - "components": [ - { - "type": "Para", - "content": "You do not have to test staff for COVID-19. Staff that are eligible for COVID-19 treatments should test themselves at home, if they have symptoms." - }, - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital
If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "name": "FluSeveritySpecificArea", - "title": "Are the cases linked to a specific area of the setting?", - "type": "RadiosField", - "nameHasError": false, - "list": "FluSeveritySpecificArea", - "options": {}, - "schema": {}, - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/cases-of-flu", - "condition": "WhichARI:CovidAndFlu" - }, - { - "path": "/severity-of-illness" - } - ] - }, { "path": "/agps", "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", From 837d68daa0869cfffff63b8c935c6a9b7247615f Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 29 Jan 2025 13:10:31 +0000 Subject: [PATCH 054/403] CAR-322 fix content mismatch in service users covid screen --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index bf08301141..f8008bea26 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2068,7 +2068,7 @@ "type": "NumberField", "name": "ServiceUsersCovidTestPositive", "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", "options": { "required": true }, From 3b6975b8c9ee4b44fa5cb496d6d5c26d6726a607 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:16:22 +0000 Subject: [PATCH 055/403] CAR-327 update content wording for calling GP question --- runner/src/server/forms/ReportAnOutbreak.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index f8008bea26..1949174661 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1996,11 +1996,11 @@ "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." }, { - "name": "SingleCaseOfFluSeverityCalledGPMultipleCases", + "name": "FluSeverityCalledGPMultipleCases", "options": {}, "type": "RadiosField", "nameHasError": false, - "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", + "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", "list": "CaseNumbers", "values": { "type": "listRef" @@ -2389,7 +2389,7 @@ { "name": "SeverityGPCalls", "type": "RadiosField", - "title": "How many people have you called the GP about because of the severity of illness in this outbreak?", + "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", "list": "CaseNumbers", "options": { "required": true From da2019830fd1df8cb60bda814fc6e52abd12a0d6 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:25:57 +0000 Subject: [PATCH 056/403] CAR-404 fix title content difference on vaccination page --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index f8008bea26..b47554f692 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1316,7 +1316,7 @@ }, { "path": "/vaccination", - "title": "Vaccination among your staff and service users", + "title": "Vaccination among your service users and staff", "section": "Vaccination", "components": [ { From 527adbe2b720e71ebf67845f7a97ce821614aea1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:21:35 +0000 Subject: [PATCH 057/403] CAR-306 fix logic in routing to the DNR screen on Covid screening questions --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4717653924..0c5eef885a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -5018,7 +5018,7 @@ } }, { - "coordinator": "and", + "coordinator": "or", "field": { "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", "type": "RadiosField", From 73a3baac2daa0625cdea8fb956817eebb2082f64 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 30 Jan 2025 10:47:53 +0000 Subject: [PATCH 058/403] CAR-390 stop dates from future being accepted in DatePartsField questions --- runner/src/server/forms/ReportAnOutbreak.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 0c5eef885a..82fe682eee 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1253,7 +1253,9 @@ "components": [ { "name": "FluSymptomOnsetDate", - "options": {}, + "options": { + "maxDaysInFuture": "0" + }, "type": "DatePartsField", "nameHasError": false, "title": "When did symptoms start?", @@ -2443,7 +2445,8 @@ "title": "When did symptoms start in the first case in this outbreak?", "hint": "For example, 31 3 2025", "options": { - "required": true + "required": true, + "maxDaysInFuture": "0" } }, { @@ -2452,7 +2455,8 @@ "title": "When did symptoms start in the most recent case in this outbreak?", "hint": "For example, 31 3 2025", "options": { - "required": false + "required": false, + "maxDaysInFuture": "0" } } ], From 76eb08ab1f80dc621002923111997ed03e15b59b Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 4 Feb 2025 11:17:37 +0000 Subject: [PATCH 059/403] CAR-484 update summary title on DNR page --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 82fe682eee..91bba648d9 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -37,7 +37,7 @@ { "name": "CareSettingType", "options": { - "summaryTitle": "Your setting" + "summaryTitle": "Setting type" }, "type": "RadiosField", "nameHasError": false, From fc0fa41f7f2214a442f1c33526d02b652dd395ce Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 4 Feb 2025 14:04:25 +0000 Subject: [PATCH 060/403] Add conditionally revealed textboxes and schema validation --- runner/src/client/sass/application.scss | 8 ++ .../components/SelectionControlField.ts | 102 +++++++++++++++++- .../server/plugins/engine/components/types.ts | 3 + 3 files changed, 109 insertions(+), 4 deletions(-) diff --git a/runner/src/client/sass/application.scss b/runner/src/client/sass/application.scss index 461bf34ccf..51d6284c34 100644 --- a/runner/src/client/sass/application.scss +++ b/runner/src/client/sass/application.scss @@ -101,3 +101,11 @@ } } } + +.govuk-radios__conditional--hidden { + display: none; +} + +.govuk-checkboxes__conditional--hidden { + display: none; +} diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 8b271afc47..24f4430563 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -1,11 +1,45 @@ +import joi from "joi"; +import nunjucks from "nunjucks"; + import { ListFormComponent } from "server/plugins/engine/components/ListFormComponent"; import { FormData, FormSubmissionErrors } from "server/plugins/engine/types"; import { ListItem } from "server/plugins/engine/components/types"; +import { ComponentCollection } from "./ComponentCollection"; + +const getSchemaKeys = Symbol("getSchemaKeys"); + /** * "Selection controls" are checkboxes and radios (and switches), as per Material UI nomenclature. */ export class SelectionControlField extends ListFormComponent { + conditionallyRevealedComponents?: any; + hasConditionallyRevealedComponents: boolean = false; + + constructor(def, model) { + super(def, model); + const { options } = def; + + const { items } = this; + + if (options.conditionallyRevealedComponents) { + this.conditionallyRevealedComponents = + options.conditionallyRevealedComponents; + + for (const item of items) { + const conditionallyRevealedComponent = this + .conditionallyRevealedComponents![item.value]; + if (conditionallyRevealedComponent) { + item.hasConditionallyRevealedComponents = true; + item.conditionallyRevealedComponents = new ComponentCollection( + [conditionallyRevealedComponent], + item.model + ); + } + } + } + } + getViewModel(formData: FormData, errors: FormSubmissionErrors) { const { name, items } = this; const options: any = this.options; @@ -15,7 +49,7 @@ export class SelectionControlField extends ListFormComponent { legend: viewModel.label, }; - viewModel.items = items.map((item) => { + viewModel.items = items.map((item: any) => { const itemModel: ListItem = { text: item.text, value: item.value, @@ -34,11 +68,71 @@ export class SelectionControlField extends ListFormComponent { }; } - return itemModel; + if (options.conditionallyRevealedComponents?.[item.value]) { + // The gov.uk design system Nunjucks examples for conditional reveal reference variables from macros. There does not appear to + // to be a way to do this in JavaScript. As such, render the conditional components with Nunjucks before the main view is rendered. + // The conditional html tag used by the gov.uk design system macro will reference HTML rarther than one or more additional + // gov.uk design system macros. - // FIXME:- add this back when GDS fix accessibility issues involving conditional reveal fields - //return super.addConditionalComponents(item, itemModel, formData, errors); + itemModel.conditional = { + html: nunjucks.render( + "../views/partials/conditional-components.html", + { + components: item.conditionallyRevealedComponents.getViewModel( + formData, + errors + ), + } + ), + }; + } + + return itemModel; }); return viewModel; } + + getStateSchemaKeys() { + return this[getSchemaKeys]("state"); + } + + getFormSchemaKeys() { + return this[getSchemaKeys]("form"); + } + + [getSchemaKeys](schemaType) { + const schemaName = `${schemaType}Schema`; + const schemaKeysFunctionName = `get${schemaType + .substring(0, 1) + .toUpperCase()}${schemaType.substring(1)}SchemaKeys`; + const filteredItems = this.items.filter( + (item: any) => item.hasConditionallyRevealedComponents + ); + const conditionalName = this.name; + const schemaKeys = { [conditionalName]: this[schemaName] }; + // const schema = this[schemaName]; + // All conditional component values are submitted regardless of their visibilty. + // As such create Joi validation rules such that: + // a) When a conditional component is visible it is required. + // b) When a conditional component is not visible it is optional. + filteredItems?.forEach((item: any) => { + const conditionalSchemaKeys = item.conditionallyRevealedComponents[ + schemaKeysFunctionName + ](); + + Object.keys(conditionalSchemaKeys).forEach((key) => { + Object.assign(schemaKeys, { + [key]: joi.alternatives().conditional(joi.ref(conditionalName), { + is: key, + then: joi.string(), //TODO should work for other validations + otherwise: joi.optional(), + }), + }); + }); + }); + + //TODO should work for checkbox components + + return schemaKeys; + } } diff --git a/runner/src/server/plugins/engine/components/types.ts b/runner/src/server/plugins/engine/components/types.ts index 5597910355..504d691b0b 100644 --- a/runner/src/server/plugins/engine/components/types.ts +++ b/runner/src/server/plugins/engine/components/types.ts @@ -23,6 +23,9 @@ export type ListItem = { selected?: boolean; label?: ListItemLabel; condition?: string; + conditional?: { + html: string; + }; }; // TODO: Break this down for each component (Same as model/Component). From 3260cf9dcbc2a89485dbea24e6817c8182b527b5 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 4 Feb 2025 14:30:15 +0000 Subject: [PATCH 061/403] CAR-155 add conditionally revealed Qs to form --- runner/src/server/forms/ReportAnOutbreak.json | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 82fe682eee..c6dcc878a1 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -37,7 +37,16 @@ { "name": "CareSettingType", "options": { - "summaryTitle": "Your setting" + "summaryTitle": "Your setting", + "conditionallyRevealedComponents": { + "Other adult social care": { + "type": "TextField", + "name": "Other adult social care", + "title": "Enter your setting type", + "options": {}, + "schema": {} + } + } }, "type": "RadiosField", "nameHasError": false, @@ -2593,7 +2602,17 @@ }, { "name": "CQCRegistered", - "options": {}, + "options": { + "conditionallyRevealedComponents": { + "true": { + "type": "TextField", + "name": "true", + "title": "Enter your CQC location ID, for example, 1-123456789", + "options": {}, + "schema": {} + } + } + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, From 91b5b09c018c43eb2992372956c107d92be61493 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 4 Feb 2025 15:04:46 +0000 Subject: [PATCH 062/403] CAR-486 clear data and return to landing page on DNR pages --- runner/config/default.js | 12 ++++++------ runner/src/server/views/checkpoint-summary.html | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index 9529207914..356fbdf214 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -56,7 +56,7 @@ module.exports = { */ serviceUrl: "http://localhost:3009", //This is used for redirects back to the runner. serviceName: "Webforms", - serviceStartPage: "/ReportAnOutbreak/setting", + serviceStartPage: "/ReportAnOutbreak/start", privacyPolicyUrl: "", feedbackLink: "#", // Used in your phase banner. Can be a URL or more commonly mailto mailto:feedback@department.gov.uk phaseTag: "beta", // Accepts "alpha" |"beta" | "" @@ -68,11 +68,11 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - sessionCookiePassword: "${SessionCookies.Password}", - redisHost: "${Redis.Host}", - redisPort: 6379, - redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - redisTls: true, //run in TLS mode + // sessionCookiePassword: "${SessionCookies.Password}", + // redisHost: "${Redis.Host}", + // redisPort: 6379, + // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + // redisTls: true, //run in TLS mode /** * SSL diff --git a/runner/src/server/views/checkpoint-summary.html b/runner/src/server/views/checkpoint-summary.html index e60463d000..d73febb786 100644 --- a/runner/src/server/views/checkpoint-summary.html +++ b/runner/src/server/views/checkpoint-summary.html @@ -47,7 +47,7 @@

{% else %} - +
\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak or cluster of ARI that you've already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Do not use this service to report:

\n
    \n
  • single cases of COVID-19
  • \n
  • any infection other than acute respiratory infections
  • \n
\n

Read more on:

\n \n

Why you should report an outbreak

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team during working hours.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" + "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

    \n
  • a single confirmed case of flu in your setting
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n" + }, + { + "name": "fmlfm", + "options": {}, + "type": "Para", + "content": "" + }, + { + "name": "snnddl", + "options": {}, + "type": "Para", + "content": "

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" } ], + "options": { + "relatedContent": true + }, "next": [ { "path": "/setting" diff --git a/runner/src/server/views/multi-start-page-with-links.html b/runner/src/server/views/multi-start-page-with-links.html new file mode 100644 index 0000000000..1988d4ce23 --- /dev/null +++ b/runner/src/server/views/multi-start-page-with-links.html @@ -0,0 +1,62 @@ +{% from "pagination/macro.njk" import govukPagination %} +{% from "button/macro.njk" import govukButton %} +{% extends 'layout.html' %} + +{% block templateImports %} +{{ super() }} +{% endblock %} + +{% from "error-summary/macro.njk" import govukErrorSummary %} +{% from "partials/components.html" import componentList with context %} + +{% block content %} + + +{% set gridSize = "full" %} +
+
+ {% if errors %} + {{ govukErrorSummary(errors) }} + {% endif %} + + {% include "partials/heading.html" %} + +
+
+ {{ componentList(components[0]) }} +
+
+ + + + {{ componentList(components) }} + + {% if continueButtonText %} + {{ govukButton({ attributes: { id: "submit" }, text: continueButtonText })}} + {% endif %} + + {{ govukPagination(startPageNavigation) }} + + +
{{ value | dump(2) | safe }}
+
+ + + +
+ +
+{% endblock %} \ No newline at end of file From 8f95155eb054180cf67f628634fbda671c52e8e1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Feb 2025 11:07:45 +0000 Subject: [PATCH 069/403] adding related content section as option on multi start page --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + runner/src/server/forms/ReportAnOutbreak.json | 19 +++--- .../MultiStartPageController.ts | 13 +++- .../pageControllers/PageControllerBase.ts | 2 + ...multi-start-page-with-related-content.html | 68 +++++++++++++++++++ 6 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 runner/src/server/views/multi-start-page-with-related-content.html diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index cc6c2826f8..1e4714ee27 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -17,6 +17,7 @@ export interface Page { section?: string; // the section ID sectionForExitJourneySummaryPages?: string; sectionForMultiSummaryPages?: string; + relatedContent?: any; next?: { path: string; condition?: string }[]; } diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 26b5407d4d..39aee8699b 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -115,6 +115,7 @@ const pageSchema = joi.object().keys({ section: joi.string(), sectionForExitJourneySummaryPages: joi.string(), sectionForMultiSummaryPages: joi.string(), + relatedContent: joi.array().optional(), controller: joi.string(), components: joi.array().items(componentSchema), next: joi.array().items(nextSchema), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 38021fa04b..ef5f6b2000 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -18,12 +18,6 @@ "type": "Para", "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

    \n
  • a single confirmed case of flu in your setting
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n" }, - { - "name": "fmlfm", - "options": {}, - "type": "Para", - "content": "" - }, { "name": "snnddl", "options": {}, @@ -31,9 +25,16 @@ "content": "

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" } ], - "options": { - "relatedContent": true - }, + "relatedContent": [ + { + "title": "Infection prevention and control in adult social care: acute respiratory infection", + "link": "https://www.gov.uk/government/publications/infection-prevention-and-control-in-adult-social-care-acute-respiratory-infection" + }, + { + "title": "Identifying and treating respiratory tract infections on the NHS website", + "link": "https://www.nhs.uk/conditions/respiratory-tract-infection/" + } + ], "next": [ { "path": "/setting" diff --git a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts index f7fa9cd6be..7d623215b9 100644 --- a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts @@ -3,15 +3,24 @@ import { PageController } from "./PageController"; export class MultiStartPageController extends PageController { get viewName() { - return "multi-start-page"; + if (this.relatedContent) { + return "multi-start-page-with-related-content"; + } else { + return "multi-start-page"; + } } getViewModel(formData: FormData, errors?: FormSubmissionErrors) { const viewModel = super.getViewModel(formData, errors); - const { showContinueButton, startPageNavigation } = this.pageDef; + const { + showContinueButton, + startPageNavigation, + relatedContent, + } = this.pageDef; return { ...viewModel, continueButtonText: showContinueButton && this.pageDef.continueButtonText, startPageNavigation, + relatedContent, isMultiStartPageController: true, }; } diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 033fa67788..0460241640 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -55,6 +55,7 @@ export class PageControllerBase { section: any; // TODO sectionForExitJourneySummaryPages: any; sectionForMultiSummaryPages: any; + relatedContent: any; components: ComponentCollection; hasFormComponents: boolean; hasConditionalFormComponents: boolean; @@ -84,6 +85,7 @@ export class PageControllerBase { this.sectionForExitJourneySummaryPages = pageDef.sectionForExitJourneySummaryPages; this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; + this.relatedContent = pageDef.relatedContent; // Components collection const components = new ComponentCollection(pageDef.components, model); diff --git a/runner/src/server/views/multi-start-page-with-related-content.html b/runner/src/server/views/multi-start-page-with-related-content.html new file mode 100644 index 0000000000..a2f48756a1 --- /dev/null +++ b/runner/src/server/views/multi-start-page-with-related-content.html @@ -0,0 +1,68 @@ +{% from "pagination/macro.njk" import govukPagination %} +{% from "button/macro.njk" import govukButton %} +{% extends 'layout.html' %} + +{% block templateImports %} +{{ super() }} +{% endblock %} + +{% from "error-summary/macro.njk" import govukErrorSummary %} +{% from "partials/components.html" import componentList with context %} + +{% block content %} + +{% set gridSize = "full" %} +
+
+ {% if errors %} + {{ govukErrorSummary(errors) }} + {% endif %} + +
+ + {% include "partials/heading.html" %} + +
+ +
+
+ +
+ +
+ + {{ componentList(components) }} + + {% if continueButtonText %} + {{ govukButton({ attributes: { id: "submit" }, text: continueButtonText })}} + {% endif %} + + {{ govukPagination(startPageNavigation) }} +
+
+
+
+




+
+

Related content

+
+ +
+
+
+
+ + + +
{{ value | dump(2) | safe }}
+
+ +
+
+{% endblock %} \ No newline at end of file From 1ccfcb98fdc4f3f8713055e5c6e65cc3f14e3799 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Feb 2025 11:18:23 +0000 Subject: [PATCH 070/403] Remove prev file --- .../views/multi-start-page-with-links.html | 62 ------------------- 1 file changed, 62 deletions(-) delete mode 100644 runner/src/server/views/multi-start-page-with-links.html diff --git a/runner/src/server/views/multi-start-page-with-links.html b/runner/src/server/views/multi-start-page-with-links.html deleted file mode 100644 index 1988d4ce23..0000000000 --- a/runner/src/server/views/multi-start-page-with-links.html +++ /dev/null @@ -1,62 +0,0 @@ -{% from "pagination/macro.njk" import govukPagination %} -{% from "button/macro.njk" import govukButton %} -{% extends 'layout.html' %} - -{% block templateImports %} -{{ super() }} -{% endblock %} - -{% from "error-summary/macro.njk" import govukErrorSummary %} -{% from "partials/components.html" import componentList with context %} - -{% block content %} - - -{% set gridSize = "full" %} -
-
- {% if errors %} - {{ govukErrorSummary(errors) }} - {% endif %} - - {% include "partials/heading.html" %} - -
-
- {{ componentList(components[0]) }} -
-
- -
- - {{ componentList(components) }} - - {% if continueButtonText %} - {{ govukButton({ attributes: { id: "submit" }, text: continueButtonText })}} - {% endif %} - - {{ govukPagination(startPageNavigation) }} -
- -
{{ value | dump(2) | safe }}
-
- - - -
- -
-{% endblock %} \ No newline at end of file From 605b9af5093a2ecac2b405366c02503d39db3f37 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:01:27 +0000 Subject: [PATCH 071/403] update summaryTitle --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index c6dcc878a1..10de908c44 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -37,7 +37,7 @@ { "name": "CareSettingType", "options": { - "summaryTitle": "Your setting", + "summaryTitle": "Setting type", "conditionallyRevealedComponents": { "Other adult social care": { "type": "TextField", From 78bc669801f5ef006f047192268dc1d49126de2c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:36:07 +0000 Subject: [PATCH 072/403] Combine content paras and make relatedContent links dynamic --- runner/src/server/forms/ReportAnOutbreak.json | 16 ++-------------- .../multi-start-page-with-related-content.html | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index ef5f6b2000..8e32b9271c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -7,22 +7,10 @@ "title": "Report an outbreak of acute respiratory infection in an adult social care setting", "components": [ { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

From: UK Health Security Agency
Applies to England

\n" - }, - { - "name": "nMOTry", - "options": {}, - "type": "Para", - "content": "

\n You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.\n

Use this service to report:

\n

    \n
  • a single confirmed case of flu in your setting
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n" - }, - { - "name": "snnddl", + "name": "mainContent", "options": {}, "type": "Para", - "content": "

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n\n

Before you start

\n

\n If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home. \n

\n

\n If you cannot test people, do not wait. Report as soon as possible. \n

\n

\n You'll need to know the:\n

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\n

Updating about an existing outbreak

\n

\n Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

\n" + "content": "

From: UK Health Security Agency
Applies to England

\n

You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.

\n

Use this service to report:

\n
    \n
  • a single confirmed case of flu in your setting
  • \n
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n

Before you start

\n

If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

\n

If you cannot test people, do not wait. Report as soon as possible.

\n

You'll need to know the:

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\n\n

Updating about an existing outbreak

\n

Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

" } ], "relatedContent": [ diff --git a/runner/src/server/views/multi-start-page-with-related-content.html b/runner/src/server/views/multi-start-page-with-related-content.html index a2f48756a1..bde54939fb 100644 --- a/runner/src/server/views/multi-start-page-with-related-content.html +++ b/runner/src/server/views/multi-start-page-with-related-content.html @@ -47,11 +47,18 @@

Related content


From 1db08622eb17928864047f498dc8ba3a6d682ebe Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:54:12 +0000 Subject: [PATCH 073/403] make content of sidebar dynamic --- model/src/data-model/types.ts | 2 +- model/src/schema/schema.ts | 2 +- runner/src/server/forms/ReportAnOutbreak.json | 24 +++++++++++-------- .../MultiStartPageController.ts | 6 ++--- .../pageControllers/PageControllerBase.ts | 6 +++-- ...ulti-start-page-with-sidebar-content.html} | 6 ++--- 6 files changed, 26 insertions(+), 20 deletions(-) rename runner/src/server/views/{multi-start-page-with-related-content.html => multi-start-page-with-sidebar-content.html} (91%) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 1e4714ee27..e05b889fcc 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -17,7 +17,7 @@ export interface Page { section?: string; // the section ID sectionForExitJourneySummaryPages?: string; sectionForMultiSummaryPages?: string; - relatedContent?: any; + sidebarContent?: any; next?: { path: string; condition?: string }[]; } diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 39aee8699b..1f12adbed9 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -115,7 +115,7 @@ const pageSchema = joi.object().keys({ section: joi.string(), sectionForExitJourneySummaryPages: joi.string(), sectionForMultiSummaryPages: joi.string(), - relatedContent: joi.array().optional(), + sidebarContent: joi.object().optional(), controller: joi.string(), components: joi.array().items(componentSchema), next: joi.array().items(nextSchema), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8e32b9271c..6c3e35c65d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -13,16 +13,20 @@ "content": "

From: UK Health Security Agency
Applies to England

\n

You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.

\n

Use this service to report:

\n
    \n
  • a single confirmed case of flu in your setting
  • \n
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n

Before you start

\n

If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

\n

If you cannot test people, do not wait. Report as soon as possible.

\n

You'll need to know the:

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\n\n

Updating about an existing outbreak

\n

Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

" } ], - "relatedContent": [ - { - "title": "Infection prevention and control in adult social care: acute respiratory infection", - "link": "https://www.gov.uk/government/publications/infection-prevention-and-control-in-adult-social-care-acute-respiratory-infection" - }, - { - "title": "Identifying and treating respiratory tract infections on the NHS website", - "link": "https://www.nhs.uk/conditions/respiratory-tract-infection/" - } - ], + "sidebarContent": { + "title": "Related content", + "subtitle": "Detailed guidance", + "links": [ + { + "title": "Infection prevention and control in adult social care: acute respiratory infection", + "link": "https://www.gov.uk/government/publications/infection-prevention-and-control-in-adult-social-care-acute-respiratory-infection" + }, + { + "title": "Identifying and treating respiratory tract infections on the NHS website", + "link": "https://www.nhs.uk/conditions/respiratory-tract-infection/" + } + ] + }, "next": [ { "path": "/setting" diff --git a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts index 7d623215b9..a2a1b495cf 100644 --- a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts @@ -3,7 +3,7 @@ import { PageController } from "./PageController"; export class MultiStartPageController extends PageController { get viewName() { - if (this.relatedContent) { + if (this.sidebarContent) { return "multi-start-page-with-related-content"; } else { return "multi-start-page"; @@ -14,13 +14,13 @@ export class MultiStartPageController extends PageController { const { showContinueButton, startPageNavigation, - relatedContent, + sidebarContent, } = this.pageDef; return { ...viewModel, continueButtonText: showContinueButton && this.pageDef.continueButtonText, startPageNavigation, - relatedContent, + sidebarContent, isMultiStartPageController: true, }; } diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 0460241640..0fb201fd2b 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -55,7 +55,7 @@ export class PageControllerBase { section: any; // TODO sectionForExitJourneySummaryPages: any; sectionForMultiSummaryPages: any; - relatedContent: any; + sidebarContent: any; components: ComponentCollection; hasFormComponents: boolean; hasConditionalFormComponents: boolean; @@ -85,7 +85,9 @@ export class PageControllerBase { this.sectionForExitJourneySummaryPages = pageDef.sectionForExitJourneySummaryPages; this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; - this.relatedContent = pageDef.relatedContent; + this.sidebarTitle = pageDef.sidebarTitle; + this.sidebarSubtitle = pageDef.sidebarSubtitle; + this.sidebarContent = pageDef.sidebarContent; // Components collection const components = new ComponentCollection(pageDef.components, model); diff --git a/runner/src/server/views/multi-start-page-with-related-content.html b/runner/src/server/views/multi-start-page-with-sidebar-content.html similarity index 91% rename from runner/src/server/views/multi-start-page-with-related-content.html rename to runner/src/server/views/multi-start-page-with-sidebar-content.html index bde54939fb..8f7a33d0bf 100644 --- a/runner/src/server/views/multi-start-page-with-related-content.html +++ b/runner/src/server/views/multi-start-page-with-sidebar-content.html @@ -44,13 +44,13 @@






-

Related content

+

{{sidebarContent.title}}


  • -

    Detailed guidance

    +

    {{sidebarContent.subtitle}}

  • - {% for item in relatedContent %} + {% for item in sidebarContent.links %}
  • From 2dd8da09b3fda0cff887797eaf8aebf6c0f4fea7 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:55:30 +0000 Subject: [PATCH 074/403] remove unneeded variables --- .../server/plugins/engine/pageControllers/PageControllerBase.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 0fb201fd2b..0727174936 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -85,8 +85,6 @@ export class PageControllerBase { this.sectionForExitJourneySummaryPages = pageDef.sectionForExitJourneySummaryPages; this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; - this.sidebarTitle = pageDef.sidebarTitle; - this.sidebarSubtitle = pageDef.sidebarSubtitle; this.sidebarContent = pageDef.sidebarContent; // Components collection From 22b496a59a784b59a4d0c0fbe86cb9f0e7d633cc Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 11 Feb 2025 08:43:58 +0000 Subject: [PATCH 075/403] Fix landing page html name in controller --- .../plugins/engine/pageControllers/MultiStartPageController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts index a2a1b495cf..e407ad719f 100644 --- a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts @@ -4,7 +4,7 @@ import { PageController } from "./PageController"; export class MultiStartPageController extends PageController { get viewName() { if (this.sidebarContent) { - return "multi-start-page-with-related-content"; + return "multi-start-page-with-sidebar-content"; } else { return "multi-start-page"; } From 2a354e1fe1f5d671689f3e5819b00ce622eb6214 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 11 Feb 2025 15:02:59 +0000 Subject: [PATCH 076/403] change class on conditional component text so label isn't bold --- .../engine/components/SelectionControlField.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 24f4430563..975f66a3f3 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -74,14 +74,22 @@ export class SelectionControlField extends ListFormComponent { // The conditional html tag used by the gov.uk design system macro will reference HTML rarther than one or more additional // gov.uk design system macros. + let viewModel = item.conditionallyRevealedComponents.getViewModel( + formData, + errors + ); + + viewModel.forEach((component) => { + if (component.model.label) { + component.model.label.classes = "govuk-label"; + } + }); + itemModel.conditional = { html: nunjucks.render( "../views/partials/conditional-components.html", { - components: item.conditionallyRevealedComponents.getViewModel( - formData, - errors - ), + components: viewModel, } ), }; From 9fee9352ebd78ecfd2290a68327d4541364febaf Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:02:45 +0000 Subject: [PATCH 077/403] pass data from conditionally revealed components through to payload --- runner/src/server/forms/ReportAnOutbreak.json | 29 ++++-- .../components/SelectionControlField.ts | 79 ++++++++++++++- .../engine/models/submission/WebhookModel.ts | 95 ++++++++++++++----- .../pageControllers/PageControllerBase.ts | 9 ++ 4 files changed, 177 insertions(+), 35 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 3a280ba9e4..0a105c3254 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -47,9 +47,9 @@ "options": { "summaryTitle": "Setting type", "conditionallyRevealedComponents": { - "Other adult social care": { + "OtherAdultSocialCare": { "type": "TextField", - "name": "Other adult social care", + "name": "OtherAdultSocialCare", "title": "Enter your setting type", "options": {}, "schema": {} @@ -2612,9 +2612,9 @@ "name": "CQCRegistered", "options": { "conditionallyRevealedComponents": { - "true": { + "CQCLocationID": { "type": "TextField", - "name": "true", + "name": "CQCLocationID", "title": "Enter your CQC location ID, for example, 1-123456789", "options": {}, "schema": {} @@ -2622,7 +2622,7 @@ } }, "type": "RadiosField", - "list": "YesNo", + "list": "CQCYesNo", "nameHasError": false, "title": "Is your care setting registered with the Care Quality Commission (CQC)?", "values": { @@ -2842,6 +2842,21 @@ } ], "lists": [ + { + "title": "cqc-yes-no", + "name": "CQCYesNo", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "CQCLocationID" + }, + { + "text": "No", + "value": "false" + } + ] + }, { "title": "yes-no", "name": "YesNo", @@ -2962,7 +2977,7 @@ }, { "text": "Other adult social care", - "value": "Other adult social care" + "value": "OtherAdultSocialCare" } ] }, @@ -5401,7 +5416,7 @@ "title": "CareOBRA SalesForce", "type": "webhook", "outputConfiguration": { - "url": "${Webhook.URL}" + "url": "https://eozhvfzu9d0i6vf.m.pipedream.net" } } ], diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 975f66a3f3..5899cab518 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -27,19 +27,90 @@ export class SelectionControlField extends ListFormComponent { options.conditionallyRevealedComponents; for (const item of items) { - const conditionallyRevealedComponent = this - .conditionallyRevealedComponents![item.value]; - if (conditionallyRevealedComponent) { + let conditionallyRevealedComponent = this + .conditionallyRevealedComponents[item.value]; + + if (conditionallyRevealedComponent != undefined) { item.hasConditionallyRevealedComponents = true; - item.conditionallyRevealedComponents = new ComponentCollection( + item.childrenCollection = new ComponentCollection( [conditionallyRevealedComponent], item.model ); + item.conditionallyRevealedComponents = item.childrenCollection; } } } } + getStateFromValidForm(payload: FormPayload) { + const state = super.getStateFromValidForm(payload); + const itemsWithConditionalComponents = this.items.filter( + (item: any) => item.childrenCollection + ); + const selectedItemsWithConditionalComponents = itemsWithConditionalComponents?.filter( + (item) => { + if (payload[this.name] && Array.isArray(payload[this.name])) { + return payload[this.name].find( + (nestedItem) => item.value === nestedItem + ); + } else { + return item.value === payload[this.name]; + } + } + ); + // Add selected form data associated with conditionally revealed content to the state. + selectedItemsWithConditionalComponents?.forEach((item: any) => + Object.assign( + state, + item.childrenCollection.getStateFromValidForm(payload) + ) + ); + // Add null values to the state for unselected form data associated with conditionally revealed content. + // This will allow changes in the visibility of conditionally revealed content to be reflected in state correctly. + const unselectedItemsWithConditionalComponents = itemsWithConditionalComponents?.filter( + (item) => !selectedItemsWithConditionalComponents?.includes(item) + ); + unselectedItemsWithConditionalComponents?.forEach((item: any) => { + const stateFromValidForm = item.childrenCollection.getStateFromValidForm( + payload + ); + Object.values(item.childrenCollection.items) + .filter( + // TODO: type + (conditionalItem: any) => stateFromValidForm[conditionalItem.name] + ) + // TODO: type + .forEach((key: any) => { + const conditionalItemToNull = key.name; + Object.assign(stateFromValidForm, { [conditionalItemToNull]: null }); + }); + Object.assign(state, stateFromValidForm); + }); + return state; + } + + getFormDataFromState(state: FormSubmissionState) { + const formData = super.getFormDataFromState(state); + if (formData) { + const itemsWithConditionalComponents = this.items.filter( + (item: any) => item.childrenCollection + ); + itemsWithConditionalComponents?.forEach((item: any) => { + const itemFormDataFromState = item.childrenCollection.getFormDataFromState( + state + ); + if ( + itemFormDataFromState && + Object.keys(itemFormDataFromState).length > 0 + ) { + Object.assign(formData, itemFormDataFromState); + } + }); + } + + return formData; + } + getViewModel(formData: FormData, errors: FormSubmissionErrors) { const { name, items } = this; const options: any = this.options; diff --git a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts index efdd8488b7..0347890e02 100644 --- a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts +++ b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts @@ -8,6 +8,7 @@ import { Field } from "server/schemas/types"; import { PageControllerBase } from "server/plugins/engine/pageControllers"; import { SelectionControlField } from "server/plugins/engine/components/SelectionControlField"; import nunjucks from "nunjucks"; + export function WebhookModel(model: FormModel, state: FormSubmissionState) { let englishName = `${config.serviceName} ${model.basePath}`; @@ -30,27 +31,57 @@ export function WebhookModel(model: FormModel, state: FormSubmissionState) { }; } +interface Field { + key: string; + title: string; + type: string | undefined; + answer: any; + children?: Field[]; // Add this to support nesting +} + function createToFieldsMap(state: FormSubmissionState) { - return function (component: FormComponent | SelectionControlField): Field { - // @ts-ignore - This block of code should not be hit since childrenCollection no - if (component.items?.childrenCollection?.formItems) { - const toField = createToFieldsMap(state); - - /** - * This is currently deprecated whilst GDS fix a known issue with accessibility and conditionally revealed fields - */ - // @ts-ignore - const nestedComponent = component?.items?.childrenCollection.formItems; - const nestedFields = nestedComponent?.map(toField); - - return nestedFields; + return function (component: FormComponent | SelectionControlField): Field[] { + if (component instanceof SelectionControlField) { + const selectedValue = state[component.name]; + const baseField = { + key: component.name, + title: component.title, + type: "list", + answer: fieldAnswerFromComponent(component, state), + }; + + // Check if there are conditional components for the selected value + const selectedItem = component.items.find( + (item) => + item.value === selectedValue && + item.hasConditionallyRevealedComponents + ); + + if (selectedItem?.childrenCollection) { + const toField = createToFieldsMap(state); + const nestedFields = selectedItem.childrenCollection.formItems.flatMap( + toField + ); + + return [ + { + ...baseField, + children: nestedFields, + }, + ]; + } + + return [baseField]; } - return { - key: component.name, - title: component.title, - type: component.dataType, - answer: fieldAnswerFromComponent(component, state), - }; + + return [ + { + key: component.name, + title: component.title, + type: component.dataType, + answer: fieldAnswerFromComponent(component, state), + }, + ]; }; } @@ -59,8 +90,6 @@ function pagesToQuestions( state: FormSubmissionState, index = 0 ) { - // TODO - index should come from the current iteration of the section. - let sectionState = state; if (page.section) { sectionState = state[page.section.name]; @@ -82,7 +111,7 @@ function pagesToQuestions( } function fieldAnswerFromComponent( - component: FormComponent, + component: FormComponent | SelectionControlField, state: FormSubmissionState = {} ) { if (!component) { @@ -90,15 +119,33 @@ function fieldAnswerFromComponent( } const rawValue = state?.[component.name]; + // Handle SelectionControlField + if (component instanceof SelectionControlField) { + // If it's a selection control, we want to return both the selected value + // and any conditional component values + const selectedValue = rawValue; + + // Find the selected item to get its display text + const selectedItem = component.items.find( + (item) => item.value === selectedValue + ); + + return selectedItem ? selectedItem.text : selectedValue; + } + switch (component.dataType) { case "list": return rawValue; case "date": - return format(new Date(rawValue), "yyyy-MM-dd"); + return rawValue ? format(new Date(rawValue), "yyyy-MM-dd") : undefined; case "monthYear": + if (!rawValue) return undefined; const [month, year] = Object.values(rawValue); return format(new Date(`${year}-${month}-1`), "yyyy-MM"); default: - return component.getDisplayStringFromState(state); + if (typeof component.getDisplayStringFromState === "function") { + return component.getDisplayStringFromState(state); + } + return rawValue; } } diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 0727174936..8f15c173d1 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -434,6 +434,15 @@ export class PageControllerBase { //Iterate all components on this page and pull out the saved values from the state for (const component of nextPage.components.items) { newValue[component.name] = currentState[component.name]; + + if (component.options.conditionallyRevealedComponents) { + for (const key in component.options.conditionallyRevealedComponents) { + const revealedComponent = + component.options.conditionallyRevealedComponents[key]; // Get the actual object + newValue[revealedComponent.name] = + currentState[revealedComponent.name]; + } + } } if (nextPage.section) { From 625dc712fbd41257658f42e1cc0321f0ba84693e Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:04:56 +0000 Subject: [PATCH 078/403] Return to correct webhook url --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 0a105c3254..6a8692fde5 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -5416,7 +5416,7 @@ "title": "CareOBRA SalesForce", "type": "webhook", "outputConfiguration": { - "url": "https://eozhvfzu9d0i6vf.m.pipedream.net" + "url": "${Webhook.URL}" } } ], From 042df8c446668028f6ed290779ec33ac83ec058f Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:05:51 +0000 Subject: [PATCH 079/403] Remove comments --- .../server/plugins/engine/components/SelectionControlField.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 5899cab518..6fc923e261 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -76,10 +76,8 @@ export class SelectionControlField extends ListFormComponent { ); Object.values(item.childrenCollection.items) .filter( - // TODO: type (conditionalItem: any) => stateFromValidForm[conditionalItem.name] ) - // TODO: type .forEach((key: any) => { const conditionalItemToNull = key.name; Object.assign(stateFromValidForm, { [conditionalItemToNull]: null }); From b137debcad627ce695573f8ae1ca9e2615c3bb50 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:09:36 +0000 Subject: [PATCH 080/403] Remove duplication by childrenCollection --- .../engine/components/SelectionControlField.ts | 15 +++++++-------- .../plugins/engine/models/SummaryViewModel.ts | 5 +++-- .../engine/models/submission/WebhookModel.ts | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 6fc923e261..609682993f 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -32,11 +32,10 @@ export class SelectionControlField extends ListFormComponent { if (conditionallyRevealedComponent != undefined) { item.hasConditionallyRevealedComponents = true; - item.childrenCollection = new ComponentCollection( + item.conditionallyRevealedComponents = new ComponentCollection( [conditionallyRevealedComponent], item.model ); - item.conditionallyRevealedComponents = item.childrenCollection; } } } @@ -45,7 +44,7 @@ export class SelectionControlField extends ListFormComponent { getStateFromValidForm(payload: FormPayload) { const state = super.getStateFromValidForm(payload); const itemsWithConditionalComponents = this.items.filter( - (item: any) => item.childrenCollection + (item: any) => item.conditionallyRevealedComponents ); const selectedItemsWithConditionalComponents = itemsWithConditionalComponents?.filter( (item) => { @@ -62,7 +61,7 @@ export class SelectionControlField extends ListFormComponent { selectedItemsWithConditionalComponents?.forEach((item: any) => Object.assign( state, - item.childrenCollection.getStateFromValidForm(payload) + item.conditionallyRevealedComponents.getStateFromValidForm(payload) ) ); // Add null values to the state for unselected form data associated with conditionally revealed content. @@ -71,10 +70,10 @@ export class SelectionControlField extends ListFormComponent { (item) => !selectedItemsWithConditionalComponents?.includes(item) ); unselectedItemsWithConditionalComponents?.forEach((item: any) => { - const stateFromValidForm = item.childrenCollection.getStateFromValidForm( + const stateFromValidForm = item.conditionallyRevealedComponents.getStateFromValidForm( payload ); - Object.values(item.childrenCollection.items) + Object.values(item.conditionallyRevealedComponents.items) .filter( (conditionalItem: any) => stateFromValidForm[conditionalItem.name] ) @@ -91,10 +90,10 @@ export class SelectionControlField extends ListFormComponent { const formData = super.getFormDataFromState(state); if (formData) { const itemsWithConditionalComponents = this.items.filter( - (item: any) => item.childrenCollection + (item: any) => item.conditionallyRevealedComponents ); itemsWithConditionalComponents?.forEach((item: any) => { - const itemFormDataFromState = item.childrenCollection.getFormDataFromState( + const itemFormDataFromState = item.conditionallyRevealedComponents.getFormDataFromState( state ); if ( diff --git a/runner/src/server/plugins/engine/models/SummaryViewModel.ts b/runner/src/server/plugins/engine/models/SummaryViewModel.ts index ddeb52ab58..8ace0d29a3 100644 --- a/runner/src/server/plugins/engine/models/SummaryViewModel.ts +++ b/runner/src/server/plugins/engine/models/SummaryViewModel.ts @@ -193,8 +193,9 @@ export class SummaryViewModel { const selectedItem = component.items.filter( (i) => i.value === selectedValue )[0]; - if (selectedItem && selectedItem.childrenCollection) { - for (const cc of selectedItem.childrenCollection.formItems) { + if (selectedItem && selectedItem.conditionallyRevealedComponents) { + for (const cc of selectedItem.conditionallyRevealedComponents + .formItems) { const cItem = Item(request, cc, sectionState, page, model); items.push(cItem); } diff --git a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts index 0347890e02..8bedc497f7 100644 --- a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts +++ b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts @@ -57,9 +57,9 @@ function createToFieldsMap(state: FormSubmissionState) { item.hasConditionallyRevealedComponents ); - if (selectedItem?.childrenCollection) { + if (selectedItem?.conditionallyRevealedComponents) { const toField = createToFieldsMap(state); - const nestedFields = selectedItem.childrenCollection.formItems.flatMap( + const nestedFields = selectedItem.conditionallyRevealedComponents.formItems.flatMap( toField ); From be7feb4871769e727318b8b0982cf37121414ba5 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 18 Feb 2025 10:45:55 +0000 Subject: [PATCH 081/403] update confirmationPage content with reference number --- model/src/data-model/types.ts | 2 ++ model/src/schema/schema.ts | 2 ++ runner/src/server/forms/ReportAnOutbreak.json | 10 +++++++--- runner/src/server/services/webhookService.ts | 8 ++++++++ runner/src/server/views/confirmation.html | 9 +++++++++ 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index e05b889fcc..e2a4a633a4 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -126,6 +126,8 @@ export type ConfirmationPage = { title: string; paymentSkipped: Toggleable; nextSteps: Toggleable; + referenceTitle: string; + referenceContent: string; }; components: ComponentDef[]; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 1f12adbed9..c92256a3a5 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -151,6 +151,8 @@ const confirmationPageSchema = joi.object({ nextSteps: toggleableString.default( "You will receive an email with details with the next steps." ), + referenceTitle: joi.string(), + referenceContent: joi.string(), }) .default(), components: joi.array().items(componentSchema), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 3a280ba9e4..f67f92d90c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2692,7 +2692,9 @@ }, { "name": "MainContactEmailAddress", - "options": {}, + "options": { + "exposeToContext": true + }, "type": "TextField", "nameHasError": false, "title": "Email address", @@ -5419,8 +5421,10 @@ "specialPages": { "confirmationPage": { "customText": { - "nextSteps": "

    Your outbreak reference number

    Your reference number is: TEST. Use this number if you need to contact the UKHSA health protection team about your outbreak.

    What happens next

    We will send 2 automated emails to {{ MainContactEmailAddress }}. An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu. An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team. If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", - "title": "Report sent" + "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ YourSetting.MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", + "title": "Report sent", + "referenceTitle": "Your outbreak reference number", + "referenceContent": "Use this number if you need to contact the UKHSA health protection team about your outbreak." } } } diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index a357f2a3ae..ed3534bb08 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -46,7 +46,15 @@ export class WebhookService { if (typeof payload === "object" && !Buffer.isBuffer(payload)) { return payload.reference; } + + const Name = JSON.parse(payload)[0].Name; + + if (Name) { + return Name; + } + const { reference } = JSON.parse(payload); + this.logger.info( ["WebhookService", "postRequest"], `Webhook request to ${url} submitted OK` diff --git a/runner/src/server/views/confirmation.html b/runner/src/server/views/confirmation.html index c9eb837176..25c4008388 100644 --- a/runner/src/server/views/confirmation.html +++ b/runner/src/server/views/confirmation.html @@ -45,6 +45,15 @@

    What happens next

    {{ customText.paymentSkipped | safe }}

    {% else %} + {% if reference %} +

    + {{ customText.referenceTitle }} +

    +

    + Your reference number is: {{ reference }}. + {{ customText.referenceContent }} +

    + {% endif %} {% if customText.nextSteps %}

    {{ customText.nextSteps | safe }} From 7b20943806bb3acaabe22ebef91d000c211ede12 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 18 Feb 2025 11:38:08 +0000 Subject: [PATCH 082/403] Remove domicilliary or home care from setting type options --- runner/src/server/forms/ReportAnOutbreak.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1ba0544387..4fed6ba3fa 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2969,10 +2969,6 @@ "text": "Extra care", "value": "Extra care" }, - { - "text": "Domiciliary or home care", - "value": "Domiciliary or home care" - }, { "text": "Rehabilitation, reablement or respite", "value": "Rehabilitation, reablement or respite" From 2c537bac49849bd3989eebf5c4fc382140397ed1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 18 Feb 2025 12:33:42 +0000 Subject: [PATCH 083/403] remove 'or on visits out' from staff question hints --- runner/src/server/forms/ReportAnOutbreak.json | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4fed6ba3fa..dbf89f6f19 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -736,7 +736,7 @@ "name": "StaffAdenovirus", "type": "NumberField", "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -778,7 +778,7 @@ "name": "StaffHmpv", "type": "NumberField", "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -816,7 +816,7 @@ "name": "StaffParainfluenza", "type": "NumberField", "title": "How many staff have tested positive for parainfluenza?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -850,7 +850,7 @@ "name": "StaffRSV", "type": "NumberField", "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -880,7 +880,7 @@ "name": "StaffRhinovirus", "type": "NumberField", "title": "How many staff have tested positive for rhinovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -906,7 +906,7 @@ "name": "StaffOtherARI", "type": "NumberField", "title": "How many staff have tested positive for an other acute respiratory infection?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -984,7 +984,7 @@ "name": "StaffSymptomsNotTested", "type": "NumberField", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": { "min": 0, "max": 999 @@ -1032,7 +1032,7 @@ "name": "StaffSymptomsNotTested", "type": "NumberField", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -1637,7 +1637,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "options": { "required": true }, @@ -1649,7 +1649,7 @@ "name": "StaffConfirmedARI", "type": "NumberField", "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": {}, "options": {} }, @@ -1657,7 +1657,7 @@ "name": "StaffSymptomsNotTested", "type": "NumberField", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} }, @@ -1871,7 +1871,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "options": { "required": true }, @@ -1883,7 +1883,7 @@ "type": "NumberField", "name": "StaffFluSwabTest", "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": {} }, { @@ -1898,13 +1898,13 @@ }, "nameHasError": false, "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" + "hint": "Include those who are currently in hospital
    If none, enter 0" }, { "name": "StaffSymptomsNotTested", "type": "NumberField", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out

    If none, enter 0" + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital

    If none, enter 0" } ], "next": [ @@ -2189,7 +2189,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true }, @@ -2201,7 +2201,7 @@ "type": "NumberField", "name": "StaffSymptomsNotTested", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true }, @@ -2225,7 +2225,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "options": { "required": true }, @@ -2237,7 +2237,7 @@ "type": "NumberField", "name": "StaffFluSwabTest", "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": {}, "options": {} }, @@ -2253,13 +2253,13 @@ }, "nameHasError": false, "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" + "hint": "Include those who are currently in hospital
    If none, enter 0" }, { "name": "StaffSymptomsNotTested", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out
    If none, enter 0", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} } @@ -2343,7 +2343,7 @@ "type": "NumberField", "name": "StaffFluSwabTest", "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": {}, "options": {} }, @@ -2351,7 +2351,7 @@ "name": "StaffConfirmedARI", "type": "NumberField", "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital", "schema": {}, "options": {} }, @@ -2367,13 +2367,13 @@ }, "nameHasError": false, "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" + "hint": "Include those who are currently in hospital
    If none, enter 0" }, { "name": "StaffSymptomsNotTested", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out
    If none, enter 0", + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} }, From a218d380a7664f42be0d3dacf81119c458ddb5bd Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:03:47 +0000 Subject: [PATCH 084/403] consistent use of 'If none, enter 0' in hint text --- runner/src/server/forms/ReportAnOutbreak.json | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index dbf89f6f19..995baeec6e 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -540,7 +540,7 @@ "name": "ServiceUsersAdenovirus", "type": "NumberField", "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -582,7 +582,7 @@ "name": "ServiceUsersHmpv", "type": "NumberField", "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -620,7 +620,7 @@ "name": "ServiceUsersParainfluenza", "type": "NumberField", "title": "How many service users have tested positive for parainfluenza?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -654,7 +654,7 @@ "name": "ServiceUsersRSV", "type": "NumberField", "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -684,7 +684,7 @@ "name": "ServiceUsersRhinovirus", "type": "NumberField", "title": "How many service users have tested positive for rhinovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -710,7 +710,7 @@ "name": "ServiceUsersOtherARI", "type": "NumberField", "title": "How many service users have tested positive for an other acute respiratory infection?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -736,7 +736,7 @@ "name": "StaffAdenovirus", "type": "NumberField", "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -778,7 +778,7 @@ "name": "StaffHmpv", "type": "NumberField", "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -816,7 +816,7 @@ "name": "StaffParainfluenza", "type": "NumberField", "title": "How many staff have tested positive for parainfluenza?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -850,7 +850,7 @@ "name": "StaffRSV", "type": "NumberField", "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -880,7 +880,7 @@ "name": "StaffRhinovirus", "type": "NumberField", "title": "How many staff have tested positive for rhinovirus?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -906,7 +906,7 @@ "name": "StaffOtherARI", "type": "NumberField", "title": "How many staff have tested positive for an other acute respiratory infection?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -928,7 +928,7 @@ "name": "ServiceUsersConfirmedARI", "type": "NumberField", "title": "How many service users have symptoms of an acute respiratory infection but have not been tested?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -984,7 +984,7 @@ "name": "StaffSymptomsNotTested", "type": "NumberField", "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -1141,7 +1141,7 @@ }, "nameHasError": false, "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out" + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" }, { "name": "ServiceUsersChestInfection", @@ -1580,7 +1580,7 @@ "type": "NumberField", "name": "ServiceUsersCovidTestPositive", "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { "required": true }, @@ -1592,7 +1592,7 @@ "name": "ServiceUsersConfirmedARI", "type": "NumberField", "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": {}, "options": {} }, @@ -1637,7 +1637,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true }, @@ -1649,7 +1649,7 @@ "name": "StaffConfirmedARI", "type": "NumberField", "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} }, @@ -1769,7 +1769,7 @@ "type": "NumberField", "name": "ServiceUsersCovidTestPositive", "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { "required": true }, @@ -1781,7 +1781,7 @@ "type": "NumberField", "name": "ServiceUsersFluSwabTest", "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": {}, "options": {} }, @@ -1871,7 +1871,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true }, @@ -1883,7 +1883,7 @@ "type": "NumberField", "name": "StaffFluSwabTest", "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": {} }, { @@ -2127,7 +2127,7 @@ "type": "NumberField", "name": "ServiceUsersCovidTestPositive", "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { "required": true }, @@ -2139,7 +2139,7 @@ "type": "NumberField", "name": "ServiceUsersFluSwabTest", "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": {}, "options": {} }, @@ -2225,7 +2225,7 @@ "type": "NumberField", "name": "StaffCovidTestPositive", "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true }, @@ -2237,7 +2237,7 @@ "type": "NumberField", "name": "StaffFluSwabTest", "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} }, @@ -2279,7 +2279,7 @@ "type": "NumberField", "name": "ServiceUsersFluSwabTest", "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": {}, "options": {} }, @@ -2287,7 +2287,7 @@ "name": "ServiceUsersConfirmedARI", "type": "NumberField", "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": {}, "options": {} }, @@ -2343,7 +2343,7 @@ "type": "NumberField", "name": "StaffFluSwabTest", "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} }, @@ -2351,7 +2351,7 @@ "name": "StaffConfirmedARI", "type": "NumberField", "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": {}, "options": {} }, From 75e8868a620949d03257f7682465fd73e43de4ec Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:06:24 +0000 Subject: [PATCH 085/403] consistent use of 'If none, enter 0' in hint text --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 995baeec6e..c0bed6a4d6 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1214,7 +1214,7 @@ }, "nameHasError": false, "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital." + "hint": "Include those who are currently in hospital
    If none, enter 0" }, { "name": "StaffChestInfection", From 6058fe9a235b34a885ce28fdb290da53df19acb7 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:29:25 +0000 Subject: [PATCH 086/403] CAR-544 landing page content fixes --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index dbf89f6f19..d42823f1ba 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -10,7 +10,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    From: UK Health Security Agency
    Applies to England

    \n

    You can use this service if you provide adult social care, such as a care home, retirement home, supported living or extra care.

    \n

    Use this service to report:

    \n
      \n
    • a single confirmed case of flu in your setting
    • \n
    • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
    • \n
    \n

    ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

    \n

    It should take about 10 minutes to complete.

    \n

    Before you start

    \n

    If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

    \n

    If you cannot test people, do not wait. Report as soon as possible.

    \n

    You'll need to know the:

    \n
      \n
    • setting postcode
    • \n
    • Care Quality Commission (CQC) location ID, if you are CQC registered
    • \n
    • total number of service users and staff in your setting
    • \n
    • number of service users and staff with symptoms
    • \n
    • dates when people's symptoms started
    • \n
    • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
    • \n
    • number of service users and staff vaccinated for COVID-19 and flu
    • \n
    • number of service users vaccinated for RSV
    • \n
    \n

    You’ll need to give your email address to access this service.

    \n\n

    Updating about an existing outbreak

    \n

    Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

    \n

    Identifying an ARI outbreak

    \n

    You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

    \n

    Why you should report

    \n

    Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

    \n

    Get help

    \n

    If you need help using the service or have any other questions, contact your local UKHSA health protection team.

    \n

    If your enquiry is urgent outside of working hours, telephone your health protection team's out-of-hours service.

    \n

    If you need urgent medical advice

    \n

    If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    " + "content": "

    From: UK Health Security Agency
    Applies to England

    \n

    You can use this service if you provide adult social care, such as a care home, supported living or extra care.

    \n

    Use this service to report:

    \n
      \n
    • a single confirmed case of flu in your setting
    • \n
    • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
    • \n
    \n

    ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

    \n

    It should take about 10 minutes to complete.

    \n

    Before you start

    \n

    If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

    \n

    If you cannot test people, do not wait. Report as soon as possible.

    \n

    You'll need to know the:

    \n
      \n
    • setting postcode
    • \n
    • Care Quality Commission (CQC) location ID, if you are CQC registered
    • \n
    • total number of service users and staff in your setting
    • \n
    • number of service users and staff with symptoms
    • \n
    • dates when people's symptoms started
    • \n
    • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
    • \n
    • number of service users and staff vaccinated for COVID-19 and flu
    • \n
    • number of service users vaccinated for RSV
    • \n
    \n

    You’ll need to give your email address to access this service.

    \n\n

    Updating about an existing outbreak

    \n

    Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

    \n

    Identifying an ARI outbreak

    \n

    You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

    \n

    Why you should report

    \n

    Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

    \n

    Get help

    \n

    If you need help using the service or have any other questions, contact your local UKHSA health protection team.

    \n

    If you need urgent medical advice

    \n

    If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    " } ], "sidebarContent": { From a91dd326ec8ecf10bdf045a6ddcc0f90ced4b556 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 08:40:28 +0000 Subject: [PATCH 087/403] fix circular routing issue --- runner/src/server/forms/ReportAnOutbreak.json | 197 ++++++++++++++++-- 1 file changed, 177 insertions(+), 20 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index dbf89f6f19..038d926bd0 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -505,6 +505,10 @@ } ], "next": [ + { + "condition": "OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-confirmed" + }, { "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-adenovirus" @@ -569,7 +573,31 @@ "path": "/service-users-ari-other" }, { - "path": "/service-users-ari-confirmed" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" } ] }, @@ -607,7 +635,31 @@ "path": "/service-users-ari-other" }, { - "path": "/service-users-ari-confirmed" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" } ] }, @@ -641,7 +693,31 @@ "path": "/service-users-ari-other" }, { - "path": "/service-users-ari-confirmed" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" } ] }, @@ -671,7 +747,31 @@ "path": "/service-users-ari-other" }, { - "path": "/service-users-ari-confirmed" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" } ] }, @@ -697,7 +797,31 @@ "path": "/service-users-ari-other" }, { - "path": "/service-users-ari-confirmed" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" } ] }, @@ -1067,7 +1191,55 @@ ], "next": [ { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" + }, + { + "path": "/severity-of-illness" } ] }, @@ -1476,20 +1648,12 @@ } ], "next": [ - { - "condition": "WhichARI:COVID19&FLU&OTHER", - "path": "/service-users-master" - }, { "condition": "OtherARIServiceOrStaff:ServiceUsers", "path": "/service-users-ari-confirmed" }, { - "condition": "OtherARIServiceOrStaff:Staff", "path": "/staff-ari-cases" - }, - { - "path": "/service-users-master" } ] }, @@ -1562,10 +1726,6 @@ "path": "/staff-covid", "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff" }, - { - "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-confirmed" - }, { "path": "/staff-ari-cases" } @@ -1856,9 +2016,6 @@ { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" - }, - { - "path": "/service-users-ari-confirmed" } ] }, From 53f7395a615cc03680d4fcdd2e1fdc6a395047b9 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 10:39:11 +0000 Subject: [PATCH 088/403] Fix staff flu cases content --- runner/src/server/forms/ReportAnOutbreak.json | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index dbf89f6f19..a305da61f3 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1214,10 +1214,10 @@ }, "nameHasError": false, "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital." + "hint": "Include those who are currently in hospital
    If none, enter 0" }, { - "name": "StaffChestInfection", + "name": "StaffSymptomsNotTested", "options": { "required": false }, @@ -1227,20 +1227,8 @@ "max": 200 }, "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital
    If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "options": {}, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    This usually includes people who have a sudden onset of acute respiratory symptoms and fever

    Include those who are currently in hospital
    If none, enter 0" + "hint": "This usually includes people who have a sudden onset of acute respiratory symptoms and fever
    Include those who are currently in hospital
    If none, enter 0" }, { "name": "StaffChestInfectionCovid19", From 53b21ada223fe4502fdd34fb06c0a46f017cceb3 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 13:29:31 +0000 Subject: [PATCH 089/403] fix routing on flu service or staff page --- runner/src/server/forms/ReportAnOutbreak.json | 60 +------------------ 1 file changed, 1 insertion(+), 59 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..3f52b55ef5 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1359,7 +1359,7 @@ "next": [ { "path": "/staff-flu", - "condition": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff" + "condition": "ARIServiceOrStaff:Staff" }, { "path": "/flu-severity-multiple-cases" @@ -5289,64 +5289,6 @@ ] } }, - { - "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", - "value": { - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsers", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of flu in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", - "value": { - "name": "MultipleCasesOfFluServiceOrStaff:ServiceUsersAndStaff", - "conditions": [ - { - "field": { - "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of flu in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - }, - { - "coordinator": "and", - "field": { - "name": "InfectionsInYourSetting.MultipleCasesOfFluServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of flu in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, { "displayName": "CovidServiceOrStaff:ServiceUsers", "name": "CovidServiceOrStaff:ServiceUsers", From fb51f416c9a5bc4ddcb487ae3fbe1614225cec71 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 13:41:19 +0000 Subject: [PATCH 090/403] Fix title on flu severity page --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..69cdbe3585 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2152,7 +2152,7 @@ }, { "path": "/flu-severity-multiple-cases", - "title": "Severity of flu or chest infection cases in this outbreak", + "title": "Severity of illness in this outbreak", "section": "SeverityOfIllness", "components": [ { From 7c545b201e8bec562003b8bf0d8a576607d4e0d0 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 13:55:33 +0000 Subject: [PATCH 091/403] Fix content on symptom onset page --- runner/src/server/forms/ReportAnOutbreak.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..5aa5a1a61d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2586,13 +2586,13 @@ }, { "path": "/symptom-onset", - "title": "Symptom onset in this outbreak", + "title": "Symptom onset of cases in this outbreak", "section": "SymptomStartDates", "components": [ { "name": "introText1", "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "content": "Include cases confirmed by a test and also service users and staff with symptoms of acute respiratory infections.", "options": {} }, { @@ -2605,7 +2605,7 @@ "name": "FirstCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the first case in this outbreak?", - "hint": "For example, 31 3 2025", + "hint": "For example, 31 3 2024", "options": { "required": true, "maxDaysInFuture": "0" @@ -2615,9 +2615,8 @@ "name": "MostRecentCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the most recent case in this outbreak?", - "hint": "For example, 31 3 2025", + "hint": "For example, 31 3 2024", "options": { - "required": false, "maxDaysInFuture": "0" } } From 6ddb39728f7925e64c73e17ba81f23b6b5a20f63 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 13:58:04 +0000 Subject: [PATCH 092/403] Revert "Fix content on symptom onset page" This reverts commit 7c545b201e8bec562003b8bf0d8a576607d4e0d0. --- runner/src/server/forms/ReportAnOutbreak.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 5aa5a1a61d..feefe87058 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2586,13 +2586,13 @@ }, { "path": "/symptom-onset", - "title": "Symptom onset of cases in this outbreak", + "title": "Symptom onset in this outbreak", "section": "SymptomStartDates", "components": [ { "name": "introText1", "type": "Para", - "content": "Include cases confirmed by a test and also service users and staff with symptoms of acute respiratory infections.", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", "options": {} }, { @@ -2605,7 +2605,7 @@ "name": "FirstCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the first case in this outbreak?", - "hint": "For example, 31 3 2024", + "hint": "For example, 31 3 2025", "options": { "required": true, "maxDaysInFuture": "0" @@ -2615,8 +2615,9 @@ "name": "MostRecentCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the most recent case in this outbreak?", - "hint": "For example, 31 3 2024", + "hint": "For example, 31 3 2025", "options": { + "required": false, "maxDaysInFuture": "0" } } From f45e81697ba2b1fb67cdb8a48ccd729c166fcb35 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 14:02:46 +0000 Subject: [PATCH 093/403] Fix sympton onset date content --- runner/src/server/forms/ReportAnOutbreak.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..23f50cda7e 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2586,7 +2586,7 @@ }, { "path": "/symptom-onset", - "title": "Symptom onset in this outbreak", + "title": "Symptom onset of cases in this outbreak", "section": "SymptomStartDates", "components": [ { @@ -2605,7 +2605,7 @@ "name": "FirstCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the first case in this outbreak?", - "hint": "For example, 31 3 2025", + "hint": "For example, 31 3 2024", "options": { "required": true, "maxDaysInFuture": "0" @@ -2615,9 +2615,9 @@ "name": "MostRecentCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the most recent case in this outbreak?", - "hint": "For example, 31 3 2025", + "hint": "For example, 31 3 2024", "options": { - "required": false, + "required": true, "maxDaysInFuture": "0" } } From ee2ef1a1b0f04bf8b7869b2551a43492a31f82a0 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 14:04:05 +0000 Subject: [PATCH 094/403] Fix sympton onset date content --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 23f50cda7e..0658019e39 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2592,7 +2592,7 @@ { "name": "introText1", "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", + "content": "Include cases confirmed by a test and also service users and staff with symptoms of acute respiratory infections.", "options": {} }, { From fb6a0e4d47ffccf4cae97a038d7c5e1a8e949e42 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 14:21:11 +0000 Subject: [PATCH 095/403] fix single case of flu symptom onset content --- runner/src/server/forms/ReportAnOutbreak.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..67eed24ee1 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1428,6 +1428,11 @@ "title": "Symptom onset for the case of flu", "section": "FluInYourSetting", "components": [ + { + "name": "intro", + "type": "Para", + "content": "If you do not know the exact date, give an estimate." + }, { "name": "FluSymptomOnsetDate", "options": { From 12cb740fdb2bb8e12dd042c293946788abcf1e88 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 14:56:35 +0000 Subject: [PATCH 096/403] fix stop date fields accepting decimals --- model/src/components/types.ts | 1 + model/src/schema/schema.ts | 2 +- .../src/server/plugins/engine/components/DatePartsField.ts | 6 +++--- runner/src/server/plugins/engine/components/NumberField.ts | 7 ++++++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/model/src/components/types.ts b/model/src/components/types.ts index cb593a4813..6c55aff01b 100644 --- a/model/src/components/types.ts +++ b/model/src/components/types.ts @@ -112,6 +112,7 @@ interface NumberFieldBase { min?: number; max?: number; precision?: number; + integer?: boolean; }; } diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index c92256a3a5..b537442467 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -88,7 +88,7 @@ export const componentSchema = joi hint: localisedString.optional(), options: joi.object().default({}), schema: joi - .object({ min: joi.number(), max: joi.number() }) + .object({ min: joi.number(), max: joi.number(), integer: joi.boolean() }) .unknown(true) .default({}), list: joi.string().optional(), diff --git a/runner/src/server/plugins/engine/components/DatePartsField.ts b/runner/src/server/plugins/engine/components/DatePartsField.ts index 7237cae218..23644cdcde 100644 --- a/runner/src/server/plugins/engine/components/DatePartsField.ts +++ b/runner/src/server/plugins/engine/components/DatePartsField.ts @@ -31,7 +31,7 @@ export class DatePartsField extends FormComponent { type: "NumberField", name: `${name}__day`, title: "Day", - schema: { min: 1, max: 31 }, + schema: { min: 1, max: 31, integer: true }, options: { required: isRequired, optionalText: optionalText, @@ -48,7 +48,7 @@ export class DatePartsField extends FormComponent { type: "NumberField", name: `${name}__month`, title: "Month", - schema: { min: 1, max: 12 }, + schema: { min: 1, max: 12, integer: true }, options: { required: isRequired, optionalText: optionalText, @@ -65,7 +65,7 @@ export class DatePartsField extends FormComponent { type: "NumberField", name: `${name}__year`, title: "Year", - schema: { min: 1000, max: 3000 }, + schema: { min: 1000, max: 3000, integer: true }, options: { required: isRequired, optionalText: optionalText, diff --git a/runner/src/server/plugins/engine/components/NumberField.ts b/runner/src/server/plugins/engine/components/NumberField.ts index 0d2e4f303f..d9ecf948f1 100644 --- a/runner/src/server/plugins/engine/components/NumberField.ts +++ b/runner/src/server/plugins/engine/components/NumberField.ts @@ -14,7 +14,7 @@ export class NumberField extends FormComponent { this.schemaOptions = schema; this.options = options; - const { min, max } = schema; + const { min, max, integer } = schema; let componentSchema = joi.number(); componentSchema = componentSchema.label(def.title.toLowerCase()); @@ -27,6 +27,11 @@ export class NumberField extends FormComponent { componentSchema = componentSchema.max(max); } + // Add this block to enforce integer validation + if (integer === true) { + componentSchema = componentSchema.integer(); + } + if (options.customValidationMessage) { componentSchema = componentSchema.rule({ message: def.options.customValidationMessage, From 7a7d07127babe3165467040c1dd10c0b03268353 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 19 Feb 2025 15:25:31 +0000 Subject: [PATCH 097/403] Fix typo in rhinovirus routing --- runner/src/server/forms/ReportAnOutbreak.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..90c5569b67 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -526,7 +526,7 @@ "path": "/service-users-ari-rsv" }, { - "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, { @@ -1207,7 +1207,7 @@ "path": "/service-users-ari-rsv" }, { - "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, { @@ -1974,7 +1974,7 @@ "path": "/service-users-ari-rsv" }, { - "condition": "ARIInfectionType:Rhiovirus&OtherARIServiceOrStaff:ServiceUser", + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, { From e1906943d33028af13ec55a7907c32e4fe1508d2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 20 Feb 2025 09:13:16 +0000 Subject: [PATCH 098/403] stop children from being nested on payload for conditional components --- .../engine/models/submission/WebhookModel.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts index 8bedc497f7..f8d16664af 100644 --- a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts +++ b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts @@ -31,14 +31,6 @@ export function WebhookModel(model: FormModel, state: FormSubmissionState) { }; } -interface Field { - key: string; - title: string; - type: string | undefined; - answer: any; - children?: Field[]; // Add this to support nesting -} - function createToFieldsMap(state: FormSubmissionState) { return function (component: FormComponent | SelectionControlField): Field[] { if (component instanceof SelectionControlField) { @@ -63,12 +55,7 @@ function createToFieldsMap(state: FormSubmissionState) { toField ); - return [ - { - ...baseField, - children: nestedFields, - }, - ]; + return [baseField, ...nestedFields]; } return [baseField]; From 0129a72126e3c3ab54b898a013e65fe53a297c52 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 20 Feb 2025 10:54:11 +0000 Subject: [PATCH 099/403] CAR-544 landing page content fix --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..59258a95e1 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -10,7 +10,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    From: UK Health Security Agency
    Applies to England

    \n

    You can use this service if you provide adult social care, such as a care home, supported living or extra care.

    \n

    Use this service to report:

    \n
      \n
    • a single confirmed case of flu in your setting
    • \n
    • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
    • \n
    \n

    ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

    \n

    It should take about 10 minutes to complete.

    \n

    Before you start

    \n

    If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

    \n

    If you cannot test people, do not wait. Report as soon as possible.

    \n

    You'll need to know the:

    \n
      \n
    • setting postcode
    • \n
    • Care Quality Commission (CQC) location ID, if you are CQC registered
    • \n
    • total number of service users and staff in your setting
    • \n
    • number of service users and staff with symptoms
    • \n
    • dates when people's symptoms started
    • \n
    • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
    • \n
    • number of service users and staff vaccinated for COVID-19 and flu
    • \n
    • number of service users vaccinated for RSV
    • \n
    \n

    You’ll need to give your email address to access this service.

    \n\n

    Updating about an existing outbreak

    \n

    Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

    \n

    Identifying an ARI outbreak

    \n

    You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

    \n

    Why you should report

    \n

    Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

    \n

    Get help

    \n

    If you need help using the service or have any other questions, contact your local UKHSA health protection team.

    \n

    If you need urgent medical advice

    \n

    If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    " + "content": "

    From: UK Health Security Agency
    Applies to England

    \n

    You can use this service if you provide adult social care. This includes a care home, supported living or extra care.

    \n

    Use this service to report:

    \n
      \n
    • a single confirmed case of flu in your setting
    • \n
    • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
    • \n
    \n

    ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

    \n

    It should take about 10 minutes to complete.

    \n

    Before you start

    \n

    If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

    \n

    If you cannot test people, do not wait. Report as soon as possible.

    \n

    You'll need to know the:

    \n
      \n
    • setting postcode
    • \n
    • Care Quality Commission (CQC) location ID, if you are CQC registered
    • \n
    • total number of service users and staff in your setting
    • \n
    • number of service users and staff with symptoms
    • \n
    • dates when people's symptoms started
    • \n
    • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
    • \n
    • number of service users and staff vaccinated for COVID-19 and flu
    • \n
    • number of service users vaccinated for RSV
    • \n
    \n

    You’ll need to give your email address to access this service.

    \n\n

    Updating about an existing outbreak

    \n

    Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

    \n

    Identifying an ARI outbreak

    \n

    You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

    \n

    Why you should report

    \n

    Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

    \n

    Get help

    \n

    If you need help using the service or have any other questions, contact your local UKHSA health protection team.

    \n

    If you need urgent medical advice

    \n

    If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    " } ], "sidebarContent": { From 990226bee0c29beea5ca55fdefdfc7033f8d11b9 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 20 Feb 2025 11:45:14 +0000 Subject: [PATCH 100/403] allow configuration for single page questions to render the question title --- model/src/schema/schema.ts | 1 + runner/src/server/forms/ReportAnOutbreak.json | 35 +++++++++++++++++-- .../pageControllers/PageControllerBase.ts | 19 ++++++---- 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index c92256a3a5..c6ce782d4f 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -118,6 +118,7 @@ const pageSchema = joi.object().keys({ sidebarContent: joi.object().optional(), controller: joi.string(), components: joi.array().items(componentSchema), + disableSingleComponentAsHeading: joi.boolean(), next: joi.array().items(nextSchema), repeatField: joi.string().optional(), options: joi.object().optional(), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index feefe87058..4a83ef875b 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -466,6 +466,7 @@ "path": "/service-users-ari-confirmed", "title": "Service users: number of cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersSymptomsNotTested", @@ -539,6 +540,7 @@ "path": "/service-users-ari-adenovirus", "title": "Service users: number of adenovirus cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersAdenovirus", @@ -605,6 +607,7 @@ "path": "/service-users-ari-hmpv", "title": "Service users: number of human Metapneumovirus (hMPV) cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersHmpv", @@ -667,6 +670,7 @@ "path": "/service-users-ari-parainfluenza", "title": "Service users: number of parainfluenza cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersParainfluenza", @@ -725,6 +729,7 @@ "path": "/service-users-ari-rsv", "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersRSV", @@ -779,6 +784,7 @@ "path": "/service-users-ari-rhinovirus", "title": "Service users: number of rhinovirus cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersRhinovirus", @@ -829,6 +835,7 @@ "path": "/service-users-ari-other", "title": "Service users: number of other acute respiratory infection cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersOtherARI", @@ -843,8 +850,24 @@ ], "next": [ { - "condition": "OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-cases" + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" }, { "path": "/severity-of-illness" @@ -855,6 +878,7 @@ "path": "/staff-ari-adenovirus", "title": "Staff: number of adenovirus cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "StaffAdenovirus", @@ -897,6 +921,7 @@ "path": "/staff-ari-hmpv", "title": "Staff: number of human Metapneumovirus (hMPV) cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "StaffHmpv", @@ -935,6 +960,7 @@ "path": "/staff-ari-parainfluenza", "title": "Staff: number of parainfluenza cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "StaffParainfluenza", @@ -969,6 +995,7 @@ "path": "/staff-ari-rsv", "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "StaffRSV", @@ -999,6 +1026,7 @@ "path": "/staff-ari-rhinovirus", "title": "Staff: number of rhinovirus cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "StaffRhinovirus", @@ -1025,6 +1053,7 @@ "path": "/staff-ari-other", "title": "Staff: number of other acute respiratory infection cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "StaffOtherARI", @@ -1047,6 +1076,7 @@ "path": "/service-users-ari-unknown", "title": "Service users: number of cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersConfirmedARI", @@ -1099,6 +1129,7 @@ "path": "/staff-ari-unknown", "title": "Staff: number of cases", "section": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, "components": [ { "type": "Para", diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 8f15c173d1..7c646033d6 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -57,6 +57,7 @@ export class PageControllerBase { sectionForMultiSummaryPages: any; sidebarContent: any; components: ComponentCollection; + disableSingleComponentAsHeading: boolean; hasFormComponents: boolean; hasConditionalFormComponents: boolean; backLinkFallback?: string; @@ -76,6 +77,8 @@ export class PageControllerBase { this.condition = pageDef.condition; this.repeatField = pageDef.repeatField; this.backLinkFallback = pageDef.backLinkFallback; + this.disableSingleComponentAsHeading = + pageDef.disableSingleComponentAsHeading; // Resolve section this.section = model.sections?.find( @@ -169,14 +172,16 @@ export class PageControllerBase { if (singleFormComponent && singleFormComponentIsFirst) { const label: any = singleFormComponent.model.label; - if (pageTitle) { - label.text = pageTitle; - } + if (!this.disableSingleComponentAsHeading) { + if (pageTitle) { + label.text = pageTitle; + } - label.isPageHeading = true; - label.classes = "govuk-label--l"; - pageTitle = pageTitle || label.text; - showTitle = false; + label.isPageHeading = true; + label.classes = "govuk-label--l"; + pageTitle = pageTitle || label.text; + showTitle = false; + } } return { From 0f5400f42a372d962ccd086c4a370a4c10c02767 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 20 Feb 2025 13:40:40 +0000 Subject: [PATCH 101/403] fix missing adenovirus route --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 68de774360..1436151f8f 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -849,6 +849,10 @@ } ], "next": [ + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, { "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-hmpv" From 222c4bfe32e56a909ee89d105261def7ce01c18a Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 21 Feb 2025 13:49:52 +0000 Subject: [PATCH 102/403] add custom CSS for the beta phase tag --- runner/src/client/sass/application.scss | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/runner/src/client/sass/application.scss b/runner/src/client/sass/application.scss index 51d6284c34..efa1156e43 100644 --- a/runner/src/client/sass/application.scss +++ b/runner/src/client/sass/application.scss @@ -109,3 +109,35 @@ .govuk-checkboxes__conditional--hidden { display: none; } + +.govuk-phase-banner__content__tag { + background-color: #1d70b8; /* Example blue background */ + padding: 5px 8px; + font-size: 1rem; + line-height: 1.25; + text-transform: lowercase; + letter-spacing: normal; +} + +.govuk-phase-banner__content__tag::first-letter { + text-transform: uppercase; +} + +.govuk-tag { + font-family: GDS Transport, arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-weight: 400; + font-size: 1rem; + line-height: 1.25; + display: inline-block; + max-width: 160px; + margin-top: -2px; + margin-bottom: -3px; + padding: 2px 8px 3px; + color: #0c2d4a; + background-color: #bbd4ea; + text-decoration: none; + overflow-wrap: break-word; + letter-spacing: 0; +} From 2f7a2f8aafae9ac51d320ab9a15bb718c4648454 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 24 Feb 2025 15:58:03 +0000 Subject: [PATCH 103/403] Fix other ari service user and staff routing --- runner/src/server/forms/ReportAnOutbreak.json | 312 +++++++++--------- 1 file changed, 156 insertions(+), 156 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1436151f8f..fcbdef0244 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -554,46 +554,46 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, { "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-adenovirus" }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" + }, { "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-hmpv" }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -604,16 +604,16 @@ ] }, { - "path": "/service-users-ari-hmpv", - "title": "Service users: number of human Metapneumovirus (hMPV) cases", + "path": "/staff-ari-adenovirus", + "title": "Staff: number of adenovirus cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "ServiceUsersHmpv", + "name": "StaffAdenovirus", "type": "NumberField", - "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -622,41 +622,41 @@ ], "next": [ { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" }, { "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-hmpv" }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -667,15 +667,15 @@ ] }, { - "path": "/service-users-ari-parainfluenza", - "title": "Service users: number of parainfluenza cases", + "path": "/service-users-ari-hmpv", + "title": "Service users: number of human Metapneumovirus (hMPV) cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "ServiceUsersParainfluenza", + "name": "ServiceUsersHmpv", "type": "NumberField", - "title": "How many service users have tested positive for parainfluenza?", + "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, @@ -684,38 +684,38 @@ } ], "next": [ - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, { "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-hmpv" }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -726,16 +726,16 @@ ] }, { - "path": "/service-users-ari-rsv", - "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", + "path": "/staff-ari-hmpv", + "title": "Staff: number of human Metapneumovirus (hMPV) cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "ServiceUsersRSV", + "name": "StaffHmpv", "type": "NumberField", - "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -744,33 +744,33 @@ ], "next": [ { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -781,15 +781,15 @@ ] }, { - "path": "/service-users-ari-rhinovirus", - "title": "Service users: number of rhinovirus cases", + "path": "/service-users-ari-parainfluenza", + "title": "Service users: number of parainfluenza cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "ServiceUsersRhinovirus", + "name": "ServiceUsersParainfluenza", "type": "NumberField", - "title": "How many service users have tested positive for rhinovirus?", + "title": "How many service users have tested positive for parainfluenza?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, @@ -798,30 +798,30 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -832,16 +832,16 @@ ] }, { - "path": "/service-users-ari-other", - "title": "Service users: number of other acute respiratory infection cases", + "path": "/staff-ari-parainfluenza", + "title": "Staff: number of parainfluenza cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "ServiceUsersOtherARI", + "name": "StaffParainfluenza", "type": "NumberField", - "title": "How many service users have tested positive for an other acute respiratory infection?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", + "title": "How many staff have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -850,25 +850,25 @@ ], "next": [ { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -879,16 +879,16 @@ ] }, { - "path": "/staff-ari-adenovirus", - "title": "Staff: number of adenovirus cases", + "path": "/service-users-ari-rsv", + "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "StaffAdenovirus", + "name": "ServiceUsersRSV", "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital
    If none, enter 0", + "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -896,22 +896,22 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -922,15 +922,15 @@ ] }, { - "path": "/staff-ari-hmpv", - "title": "Staff: number of human Metapneumovirus (hMPV) cases", + "path": "/staff-ari-rsv", + "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "StaffHmpv", + "name": "StaffRSV", "type": "NumberField", - "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", + "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, @@ -940,17 +940,17 @@ ], "next": [ { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -961,16 +961,16 @@ ] }, { - "path": "/staff-ari-parainfluenza", - "title": "Staff: number of parainfluenza cases", + "path": "/service-users-ari-rhinovirus", + "title": "Service users: number of rhinovirus cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "StaffParainfluenza", + "name": "ServiceUsersRhinovirus", "type": "NumberField", - "title": "How many staff have tested positive for parainfluenza?", - "hint": "Include those who are currently in hospital
    If none, enter 0", + "title": "How many service users have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 @@ -978,14 +978,14 @@ } ], "next": [ - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" @@ -996,15 +996,15 @@ ] }, { - "path": "/staff-ari-rsv", - "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", + "path": "/staff-ari-rhinovirus", + "title": "Staff: number of rhinovirus cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "StaffRSV", + "name": "StaffRhinovirus", "type": "NumberField", - "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", + "title": "How many staff have tested positive for rhinovirus?", "hint": "Include those who are currently in hospital
    If none, enter 0", "schema": { "min": 0, @@ -1014,8 +1014,8 @@ ], "next": [ { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", @@ -1027,16 +1027,16 @@ ] }, { - "path": "/staff-ari-rhinovirus", - "title": "Staff: number of rhinovirus cases", + "path": "/service-users-ari-other", + "title": "Service users: number of other acute respiratory infection cases", "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { - "name": "StaffRhinovirus", + "name": "ServiceUsersOtherARI", "type": "NumberField", - "title": "How many staff have tested positive for rhinovirus?", - "hint": "Include those who are currently in hospital
    If none, enter 0", + "title": "How many service users have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 From 09edec9feeaaf232f5134bffc2957dcbccbde3e1 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 26 Feb 2025 10:11:38 +0000 Subject: [PATCH 104/403] CAR-512 remove caption headings --- runner/src/server/forms/ReportAnOutbreak.json | 340 ++++++------------ 1 file changed, 113 insertions(+), 227 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index fcbdef0244..1782a42388 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -38,7 +38,6 @@ { "path": "/setting", "title": "What type of adult social care do you provide?", - "section": "YourSetting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ @@ -75,7 +74,6 @@ { "path": "/positive-ari", "title": "Do you have any positive test results for an acute respiratory infection?", - "section": "InfectionsYouAreReporting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ @@ -108,7 +106,6 @@ { "path": "/which-ari", "title": "Which acute respiratory infections do you have a positive test result for?", - "section": "InfectionsYouAreReporting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "components": [ @@ -144,7 +141,6 @@ { "path": "/2-or-more-covid", "title": "Are you reporting 2 or more cases?", - "section": "InfectionsYouAreReporting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ @@ -179,7 +175,6 @@ { "path": "/2-or-more-covid-descriptive", "title": "Are you reporting 2 or more cases of COVID-19?", - "section": "InfectionsYouAreReporting", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ { @@ -213,7 +208,6 @@ { "path": "/2-or-more-covid-details", "title": "Acute respiratory infections in your setting", - "section": "InfectionsYouAreReporting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ @@ -269,7 +263,6 @@ { "path": "/2-or-more-ari", "title": "Are you reporting 2 or more cases of an acute respiratory infection?", - "section": "InfectionYouAreReporting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ @@ -300,7 +293,6 @@ { "path": "/do-not-need-to-report", "title": "You do not need to report", - "section": "InfectionsYouAreReporting", "controller": "CheckpointSummaryPageController", "options": { "customText": { @@ -313,7 +305,6 @@ { "path": "/do-not-need-to-report-multiple", "title": "You do not need to report", - "section": "InfectionsYouAreReporting", "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true, @@ -327,7 +318,6 @@ { "path": "/2-or-more-cases-not-covid-or-flu", "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", - "section": "InfectionYouAreReporting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "OtherInYourSetting", "components": [ @@ -375,7 +365,6 @@ { "path": "/mid-way-summary", "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true @@ -385,7 +374,6 @@ { "path": "/mid-way-summary-covid-yes-flu-yes-other-yes", "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true @@ -400,7 +388,6 @@ { "path": "/mid-way-summary-covid-yes-other-no", "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true, @@ -413,7 +400,6 @@ { "path": "/mid-way-summary-covid-no-other-yes", "title": "Check your answers before continuing", - "section": "InfectionsYouAreReporting", "controller": "CheckpointSummaryPageController", "options": { "multiSummary": true, @@ -426,7 +412,6 @@ { "path": "/ari-infection-type", "title": "What infection are you reporting?", - "section": "InfectionYouAreReporting", "sectionForMultiSummaryPages": "OtherInYourSetting", "components": [ { @@ -465,7 +450,6 @@ { "path": "/service-users-ari-confirmed", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -539,7 +523,6 @@ { "path": "/service-users-ari-adenovirus", "title": "Service users: number of adenovirus cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -606,7 +589,6 @@ { "path": "/staff-ari-adenovirus", "title": "Staff: number of adenovirus cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -669,7 +651,6 @@ { "path": "/service-users-ari-hmpv", "title": "Service users: number of human Metapneumovirus (hMPV) cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -728,7 +709,6 @@ { "path": "/staff-ari-hmpv", "title": "Staff: number of human Metapneumovirus (hMPV) cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -783,7 +763,6 @@ { "path": "/service-users-ari-parainfluenza", "title": "Service users: number of parainfluenza cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -834,7 +813,6 @@ { "path": "/staff-ari-parainfluenza", "title": "Staff: number of parainfluenza cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -881,7 +859,6 @@ { "path": "/service-users-ari-rsv", "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -924,7 +901,6 @@ { "path": "/staff-ari-rsv", "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -963,7 +939,6 @@ { "path": "/service-users-ari-rhinovirus", "title": "Service users: number of rhinovirus cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -998,7 +973,6 @@ { "path": "/staff-ari-rhinovirus", "title": "Staff: number of rhinovirus cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1029,7 +1003,6 @@ { "path": "/service-users-ari-other", "title": "Service users: number of other acute respiratory infection cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1056,7 +1029,6 @@ { "path": "/staff-ari-other", "title": "Staff: number of other acute respiratory infection cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1079,7 +1051,6 @@ { "path": "/service-users-ari-unknown", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1132,7 +1103,6 @@ { "path": "/staff-ari-unknown", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1185,7 +1155,6 @@ { "path": "/staff-ari-confirmed", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "name": "StaffSymptomsNotTested", @@ -1281,7 +1250,6 @@ { "path": "/cases-of-flu", "title": "How many cases are you reporting?", - "section": "InfectionsInYourSetting", "components": [ { "name": "NumberOfCasesOfFlu", @@ -1309,7 +1277,6 @@ { "path": "/single-case-of-flu", "title": "Who has the case of flu?", - "section": "InfectionsInYourSetting", "components": [ { "name": "SingleCaseOfFluServiceOrStaff", @@ -1336,7 +1303,6 @@ { "path": "/service-users-flu", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "name": "ServiceUsersFluSwabTest", @@ -1404,7 +1370,6 @@ { "path": "/staff-flu", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1461,7 +1426,6 @@ { "path": "/symptom-onset-flu", "title": "Symptom onset for the case of flu", - "section": "FluInYourSetting", "components": [ { "name": "intro", @@ -1491,7 +1455,6 @@ { "path": "/flu-severity", "title": "Severity of the case of flu", - "section": "FluInYourSetting", "components": [ { "name": "SingleCaseOfFluSeverityCalledGP", @@ -1536,7 +1499,6 @@ { "path": "/vaccination", "title": "Vaccination among your service users and staff", - "section": "Vaccination", "components": [ { "name": "ServiceUsersCovid19Vaccination", @@ -1628,7 +1590,6 @@ { "path": "/ari-unknown-cases-setting", "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1658,7 +1619,6 @@ { "path": "/other-ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1688,7 +1648,6 @@ { "path": "/ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", - "section": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1762,7 +1721,6 @@ { "path": "/service-users-covid-ari", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -1819,7 +1777,6 @@ { "path": "/staff-covid-ari", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -1872,7 +1829,6 @@ { "path": "/staff-ari-cases", "title": "Staff: Number of cases", - "section": "Infections in your setting", "components": [ { "type": "Para", @@ -1951,7 +1907,6 @@ { "path": "/service-users-master", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2050,7 +2005,6 @@ { "path": "/staff-master", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2128,7 +2082,6 @@ { "path": "/ipc", "title": "Infection prevention and control (IPC) and outbreak management in your setting", - "section": "InfectionPreventionAndControl", "components": [ { "name": "IPCPractices", @@ -2193,7 +2146,6 @@ { "path": "/flu-severity-multiple-cases", "title": "Severity of illness in this outbreak", - "section": "SeverityOfIllness", "components": [ { "type": "Para", @@ -2266,7 +2218,6 @@ { "path": "/service-users-covid", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2306,7 +2257,6 @@ { "path": "/service-users-covid-flu", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2364,7 +2314,6 @@ { "path": "/staff-covid", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -2404,7 +2353,6 @@ { "path": "/staff-covid-flu", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2458,7 +2406,6 @@ { "path": "/service-users-flu-ari", "title": "Service users: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2522,7 +2469,6 @@ { "path": "/staff-flu-ari", "title": "Staff: number of cases", - "section": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2582,7 +2528,6 @@ { "path": "/severity-of-illness", "title": "Severity of illness in this outbreak", - "section": "SeverityOfIllness", "components": [ { "name": "severityIntro", @@ -2627,7 +2572,6 @@ { "path": "/symptom-onset", "title": "Symptom onset of cases in this outbreak", - "section": "SymptomStartDates", "components": [ { "name": "introText1", @@ -2671,7 +2615,6 @@ { "path": "/agps", "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", - "section": "InfectionPreventionAndControl", "components": [ { "name": "FFP3Masks", @@ -2694,7 +2637,6 @@ { "path": "/agency-staff", "title": "Do you use agency staff or share staff with other care settings?", - "section": "Staff", "components": [ { "name": "AgencyStaff", @@ -2721,7 +2663,6 @@ { "path": "/additional-staff", "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", - "section": "Staff", "components": [ { "name": "AdditionalStaff", @@ -2744,7 +2685,6 @@ { "path": "/setting-details", "title": "Setting details", - "section": "YourSetting", "components": [ { "name": "SettingName", @@ -2831,7 +2771,6 @@ { "path": "/contact-details", "title": "Contact details", - "section": "YourSetting", "components": [ { "name": "heading1", @@ -2955,7 +2894,6 @@ { "path": "/service-users", "title": "Service users and staff", - "section": "PeopleInYourSetting", "components": [ { "name": "ServiceUsersTypes", @@ -3451,61 +3389,9 @@ "name": "InfectionYouAreReporting", "title": "Infection you are reporting" }, - { - "name": "InfectionsYouAreReporting", - "title": "Infections you are reporting" - }, { "name": "InfectionsInYourSetting", "title": "Infections in your setting" - }, - { - "name": "SeverityOfIllness", - "title": "Severity of illness" - }, - { - "name": "SymptomStartDates", - "title": "Symptom start dates" - }, - { - "name": "Vaccination", - "title": "Vaccination" - }, - { - "name": "Summary", - "title": "Summary" - }, - { - "name": "SettingDetails", - "title": "Setting details" - }, - { - "name": "PeopleInYourSetting", - "title": "People in your setting" - }, - { - "name": "YourSetting", - "title": "Your setting" - }, - { - "name": "FluAndChestInfectionInYourSetting", - "title": "Flu and chest infection in your setting" - }, - { - "name": "InfectionPreventionAndControl", - "title": "Infection prevention and control" - }, - { - "name": "Staff", - "title": "Staff" - }, - { - "name": "ConfirmedOrUnknownARI", - "title": "Confirmed or unknown acute respiratory infection" - }, - { - "name": "FluInYourSetting", - "title": "Flu in your setting" } ], @@ -3518,7 +3404,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3540,7 +3426,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3562,7 +3448,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3576,7 +3462,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3598,7 +3484,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3612,7 +3498,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3634,7 +3520,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3648,7 +3534,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3670,7 +3556,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3684,7 +3570,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3706,7 +3592,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3720,7 +3606,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3742,7 +3628,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3756,7 +3642,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3778,7 +3664,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3792,7 +3678,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3814,7 +3700,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3828,7 +3714,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3850,7 +3736,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3864,7 +3750,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3886,7 +3772,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3900,7 +3786,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3922,7 +3808,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3936,7 +3822,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3958,7 +3844,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.ARIInfectionType", + "name": "ARIInfectionType", "type": "CheckboxesField", "display": "What infection are you reporting?" }, @@ -3972,7 +3858,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.OtherARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -3994,7 +3880,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.PositiveARI", + "name": "PositiveARI", "type": "RadiosField", "display": "Do you have any positive test results for an acute respiratory infection?" }, @@ -4016,7 +3902,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.TwoOrMoreARI", + "name": "TwoOrMoreARI", "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection?" }, @@ -4038,7 +3924,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "name": "TwoOrMoreCovid", "type": "RadiosField", "display": "Are you reporting 2 or more cases?" }, @@ -4060,7 +3946,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4082,7 +3968,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4096,7 +3982,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4110,7 +3996,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4132,7 +4018,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4146,7 +4032,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4168,7 +4054,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4182,7 +4068,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4204,7 +4090,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4218,7 +4104,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4232,7 +4118,7 @@ { "coordinator": "and", "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "name": "TwoOrMoreCasesNotCovidFlu", "type": "RadiosField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4246,7 +4132,7 @@ { "coordinator": "and", "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "name": "TwoOrMoreCasesNotCovidFlu", "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, @@ -4268,7 +4154,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4282,7 +4168,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4296,7 +4182,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "name": "TwoOrMoreCovid", "type": "RadiosField", "display": "Are you reporting 2 or more cases of COVID-19?" }, @@ -4310,7 +4196,7 @@ { "coordinator": "and", "field": { - "name": "InfectionYouAreReporting.TwoOrMoreARI", + "name": "TwoOrMoreARI", "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection?" }, @@ -4332,7 +4218,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4346,7 +4232,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4360,7 +4246,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid", + "name": "TwoOrMoreCovid", "type": "RadiosField", "display": "Are you reporting 2 or more cases of COVID-19?" }, @@ -4374,7 +4260,7 @@ { "coordinator": "and", "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "name": "TwoOrMoreCasesNotCovidFlu", "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, @@ -4396,7 +4282,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4410,7 +4296,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4424,7 +4310,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "name": "TwoOrMoreCovid5days", "type": "RadiosField", "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" }, @@ -4438,7 +4324,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", + "name": "TwoOrMoreCovidSpread", "type": "RadiosField", "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" }, @@ -4452,7 +4338,7 @@ { "coordinator": "and", "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "name": "TwoOrMoreCasesNotCovidFlu", "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, @@ -4475,7 +4361,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4497,7 +4383,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4519,7 +4405,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4533,7 +4419,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4555,7 +4441,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4569,7 +4455,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4591,7 +4477,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4605,7 +4491,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4619,7 +4505,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4641,7 +4527,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4655,7 +4541,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4669,7 +4555,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4683,7 +4569,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -4705,7 +4591,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4719,7 +4605,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4733,7 +4619,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4747,7 +4633,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -4769,7 +4655,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4783,7 +4669,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4797,7 +4683,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -4819,7 +4705,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4833,7 +4719,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4847,7 +4733,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -4869,7 +4755,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4883,7 +4769,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4897,7 +4783,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -4919,7 +4805,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4933,7 +4819,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4947,7 +4833,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -4969,7 +4855,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -4983,7 +4869,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5005,7 +4891,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5019,7 +4905,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5041,7 +4927,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5055,7 +4941,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5069,7 +4955,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5091,7 +4977,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5105,7 +4991,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5119,7 +5005,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5141,7 +5027,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5155,7 +5041,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5177,7 +5063,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.WhichARI", + "name": "WhichARI", "type": "CheckboxesField", "display": "Which acute respiratory infections do you have a positive test result for?" }, @@ -5191,7 +5077,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5213,7 +5099,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "name": "TwoOrMoreCovid5days", "type": "RadiosField", "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" }, @@ -5235,7 +5121,7 @@ "conditions": [ { "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovid5days", + "name": "TwoOrMoreCovid5days", "type": "RadiosField", "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" }, @@ -5249,7 +5135,7 @@ { "coordinator": "or", "field": { - "name": "InfectionsYouAreReporting.TwoOrMoreCovidSpread", + "name": "TwoOrMoreCovidSpread", "type": "RadiosField", "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" }, @@ -5271,7 +5157,7 @@ "conditions": [ { "field": { - "name": "InfectionYouAreReporting.TwoOrMoreCasesNotCovidFlu", + "name": "TwoOrMoreCasesNotCovidFlu", "type": "RadiosField", "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, @@ -5293,7 +5179,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.SingleCaseOfFluServiceOrStaff", + "name": "SingleCaseOfFluServiceOrStaff", "type": "RadiosField", "display": "Who has the case of flu?" }, @@ -5315,7 +5201,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.NumberOfCasesOfFlu", + "name": "NumberOfCasesOfFlu", "type": "RadiosField", "display": "How many cases of flu are you reporting?" }, @@ -5337,7 +5223,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "name": "CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -5359,7 +5245,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "name": "CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -5381,7 +5267,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "name": "CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -5395,7 +5281,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.CovidServiceOrStaff", + "name": "CovidServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of COVID-19 in?" }, @@ -5417,7 +5303,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5439,7 +5325,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5461,7 +5347,7 @@ "conditions": [ { "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5475,7 +5361,7 @@ { "coordinator": "and", "field": { - "name": "InfectionsInYourSetting.ARIServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5497,7 +5383,7 @@ "conditions": [ { "field": { - "name": "InfectionPreventionAndControl.AGPs", + "name": "AGPs", "type": "RadiosField", "display": "Does your setting undertake aerosol generating procedures (AGPs)?" }, @@ -5519,7 +5405,7 @@ "conditions": [ { "field": { - "name": "Staff.AgencyStaff", + "name": "AgencyStaff", "type": "RadiosField", "display": "Do you use agency staff or share staff with other care settings?" }, From afee16450380c0f4e0334d4e8d85e4b21793b9f2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 4 Mar 2025 13:55:17 +0000 Subject: [PATCH 105/403] CAR-657 display different content on page in DNR page --- model/src/schema/schema.ts | 1 + runner/src/server/forms/ReportAnOutbreak.json | 1 + .../CheckpointSummaryPageController.ts | 31 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index ce980fdbd1..36da99d526 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -175,6 +175,7 @@ const specialPagesSchema = joi.object().keys({ const listItemSchema = joi.object().keys({ text: localisedString, value: joi.alternatives().try(joi.number(), joi.string()), + checkpointDisplayValue: joi.alternatives().try(joi.number(), joi.string()), description: localisedString.optional(), conditional: joi .object() diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1782a42388..ed8ee3f46d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3032,6 +3032,7 @@ { "text": "Any other acute respiratory infections", "value": "Any other acute respiratory infections", + "checkpointDisplayValue": "Other acute respiratory infection (not COVID-19 or flu)", "description": "including viruses such as respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus" } ] diff --git a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts index 49bc722ae7..4467d8607c 100644 --- a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts @@ -129,6 +129,25 @@ export class CheckpointSummaryPageController extends PageController { }; } + findDisplayValue( + component: FormComponent, + value: string + ): string | undefined { + // Check if the component has items list + if (component.items && Array.isArray(component.items)) { + // Find the item where the text or value matches the input value + const matchedItem = component.items.find( + (item) => item.text === value || item.value === value + ); + + // Return value2 if it exists, otherwise return undefined + return matchedItem?.checkpointDisplayValue || matchedItem?.text; + } + + // If no items list or no match found, return undefined + return undefined; + } + formItemsToRowByPage({ page, sectionState, @@ -141,6 +160,10 @@ export class CheckpointSummaryPageController extends PageController { const pagePath = `/${page.model.basePath}${page.path}`; const returnPath = `${pagePath}${this.returnUrlParameter}`; const model = this.model; + + // Bind the findDisplayValue method to the current instance + const boundFindDisplayValue = this.findDisplayValue.bind(this); + return function (component: FormComponent) { let valueText = component.getDisplayStringFromState(sectionState); @@ -152,6 +175,14 @@ export class CheckpointSummaryPageController extends PageController { fullState.originalFilenames?.[component.name]?.originalFilename; } + // Try to find alternate display value + const alternateValue = boundFindDisplayValue(component, valueText); + + // Use alternate value if found + if (alternateValue) { + valueText = alternateValue; + } + return { key: { text: component.options.summaryTitle ?? component.title, From 8ad02ac69ca4060e2ea1360caabb669f9e055ef2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 7 Mar 2025 09:48:48 +0000 Subject: [PATCH 106/403] CAR-1279 CAR-1292 CAR-1308 unknown ari defects --- runner/src/server/forms/ReportAnOutbreak.json | 197 +++++++++++++----- 1 file changed, 144 insertions(+), 53 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1782a42388..63be2583fe 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -286,7 +286,7 @@ "condition": "TwoOrMoreARI:No" }, { - "path": "/ari-unknown-cases-setting" + "path": "/ari-confirmed-cases-setting" } ] }, @@ -1056,7 +1056,7 @@ { "name": "ServiceUsersConfirmedARI", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection but have not been tested?", + "title": "How many service users have symptoms of an acute respiratory infection but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, @@ -1096,7 +1096,7 @@ "condition": "ARIServiceOrStaff:Staff" }, { - "path": "/severity-of-illness" + "path": "/severity-of-illness-unknown" } ] }, @@ -1122,7 +1122,7 @@ { "name": "StaffTestedCovid", "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", + "title": "How many staff have been tested for COVID-19?", "hint": "If none, enter 0", "schema": { "min": 0, @@ -1135,7 +1135,7 @@ { "name": "StaffTestedFlu", "type": "NumberField", - "title": "How many service users have been tested for flu?", + "title": "How many staff have been tested for flu?", "hint": "If none, enter 0", "options": { "required": false @@ -1148,7 +1148,7 @@ ], "next": [ { - "path": "/severity-of-illness" + "path": "/severity-of-illness-unknown" } ] }, @@ -1587,35 +1587,6 @@ } ] }, - { - "path": "/ari-unknown-cases-setting", - "title": "Who has an acute respiratory infection?", - "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, - { - "name": "ARIServiceOrStaff", - "type": "CheckboxesField", - "title": " ", - "hint": "You can select more than one option", - "list": "ServiceOrStaffMultiple", - "options": { - "required": true - } - } - ], - "next": [ - { - "condition": "ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-other" - }, - { - "path": "/staff-ari-unknown" - } - ] - }, { "path": "/other-ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", @@ -1665,6 +1636,14 @@ } ], "next": [ + { + "condition": "UnknownARI&ServiceOrStaff:ServiceUsers", + "path": "/service-users-ari-unknown" + }, + { + "condition": "UnknownARI&ServiceOrStaff:Staff", + "path": "/staff-ari-unknown" + }, { "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", "path": "/service-users-master" @@ -2071,9 +2050,6 @@ "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" }, - { - "path": "/severity-of-illness" - }, { "path": "/severity-of-illness" } @@ -2569,6 +2545,64 @@ } ] }, + { + "path": "/severity-of-illness-unknown", + "title": "Severity of illness in this outbreak", + "components": [ + { + "name": "SeverityGPCalls", + "type": "RadiosField", + "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityAntibiotics", + "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", + "type": "NumberField", + "options": { + "required": false + } + }, + { + "name": "SeverityHospitalisations", + "type": "RadiosField", + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeverityDeaths", + "type": "RadiosField", + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true + } + }, + { + "name": "SeveritySpecificArea", + "title": "Are the cases linked to a specific area of the setting?", + "type": "RadiosField", + "nameHasError": false, + "list": "FluSeveritySpecificArea", + "options": {}, + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/symptom-onset" + } + ] + }, { "path": "/symptom-onset", "title": "Symptom onset of cases in this outbreak", @@ -3394,8 +3428,79 @@ "title": "Infections in your setting" } ], - "conditions": [ + { + "displayName": "UnknownARI&ServiceOrStaff:ServiceUsers", + "name": "UnknownARI&ServiceOrStaff:ServiceUsers", + "value": { + "name": "UnknownARI&ServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "PositiveARI", + "type": "RadiosField", + "display": "Do you have any positive test results for an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "No" + } + } + ] + } + }, + { + "displayName": "UnknownARI&ServiceOrStaff:Staff", + "name": "UnknownARI&ServiceOrStaff:Staff", + "value": { + "name": "UnknownARI&ServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + }, + { + "coordinator": "and", + "field": { + "name": "PositiveARI", + "type": "RadiosField", + "display": "Do you have any positive test results for an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "No" + } + } + ] + } + }, { "displayName": "OtherARIServiceOrStaff:ServiceUsers", "name": "OtherARIServiceOrStaff:ServiceUsers", @@ -3843,20 +3948,6 @@ "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "conditions": [ { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Other acute respiratory infection", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", "field": { "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", From fd5ae5b10d0186939fc3d5965b70559d7bd9a5a9 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 7 Mar 2025 10:36:13 +0000 Subject: [PATCH 107/403] fix to open guidance link in a new tab --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1782a42388..74f273e99b 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -243,7 +243,7 @@ }, { "type": "Para", - "content": "

    Read guidance on when cases may be linked by spread in the care setting (opens in a new tab).

    " + "content": "

    Read guidance on when cases may be linked by spread in the care setting (opens in a new tab).

    " } ], "next": [ From 028a05d5eeb409c05eede3c26175f20cbe3d829c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 7 Mar 2025 11:19:58 +0000 Subject: [PATCH 108/403] fix missing email Report Sent page --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1782a42388..361dd89175 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -5445,7 +5445,7 @@ "specialPages": { "confirmationPage": { "customText": { - "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ YourSetting.MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", + "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", "title": "Report sent", "referenceTitle": "Your outbreak reference number", "referenceContent": "Use this number if you need to contact the UKHSA health protection team about your outbreak." From 43ef63604e28d7473fe30e9bfcacf989fa23f0de Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 7 Mar 2025 14:47:59 +0000 Subject: [PATCH 109/403] WIP feedback form --- runner/src/server/forms/ReportAnOutbreak.json | 4 +- runner/src/server/forms/feedback.json | 127 ++++++++++++++++++ 2 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 runner/src/server/forms/feedback.json diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1782a42388..63af61d7f5 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -5437,7 +5437,7 @@ "name": "Report an outbreak", "feedback": { "feedbackForm": true, - "url": "" + "url": "/feedback" }, "phaseBanner": { "phase": "beta" @@ -5445,7 +5445,7 @@ "specialPages": { "confirmationPage": { "customText": { - "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ YourSetting.MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", + "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ YourSetting.MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", "title": "Report sent", "referenceTitle": "Your outbreak reference number", "referenceContent": "Use this number if you need to contact the UKHSA health protection team about your outbreak." diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json new file mode 100644 index 0000000000..6d78132994 --- /dev/null +++ b/runner/src/server/forms/feedback.json @@ -0,0 +1,127 @@ +{ + "metadata": {}, + "startPage": "/start", + "name": "Report an outbreak", + "skipSummary": true, + "pages": [ + { + "path": "/start", + "title": "Give feedback on Report an Outbreak", + "components": [ + { + "name": "Feedback", + "options": {}, + "type": "CheckboxesField", + "title": "How would you describe Report an outbreak?", + "hint": "Select all that apply", + "list": "FeedbackOptions" + }, + { + "name": "OtherFeedbackTextBox", + "options": {}, + "type": "MultilineTextField", + "title": "Tell us about any difficulties or highlights you experienced, and how we could improve the service.", + "hint": "Do not include any personal information here, for example patient or disease details." + }, + { + "name": "FeedbackPara", + "options": {}, + "type": "Para", + "content": "
    We would like to discuss your experience or test new features with you.

    Provide your email address if we can contact you for research. We will store your email address as explained in our UKHSA privacy notice (opens in a new tab)

    " + }, + { + "name": "FeedbackEmailAddress", + "options": { + "required": false + }, + "title": "Email address for a researcher to contact you", + "type": "TextField" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "feedback-options", + "name": "FeedbackOptions", + "type": "string", + "items": [ + { + "text": "Useful resource", + "value": "Useful resource" + }, + { + "text": "Easy to complete", + "value": "Easy to complete" + }, + { + "text": "Quick to complete", + "value": "Quick to complete" + }, + { + "text": "Some questions were unclear", + "value": "Some questions were unclear" + }, + { + "text": "Not detailed enough", + "value": "Not detailed enough" + }, + { + "text": "Too detailed", + "value": "Too detailed" + }, + { + "text": "Too time consuming", + "value": "Too time consuming" + }, + { + "text": "Other (specify below)", + "value": "Other (specify below)" + } + ] + } + ], + "outputs": [ + { + "name": "FeedbackForm", + "title": "CareOBRA FeedbackForm", + "type": "notify", + "outputConfiguration": { + "apiKey": { + "test": "local_guest_list-db3df15e-136e-484b-8035-2ebe1f382799-e71ae908-dbd4-479f-97cf-3e3079b977c7", + "production": "productionKey" + }, + "emailField": "FeedbackEmailAddress", + "templateId": "83d1c036-dfeb-4d5b-b4e3-e8125810c663", + "addReferencesToPersonalisation": false, + "personalisation": [ + "Feedback", + "OtherFeedbackTextBox", + "FeedbackEmailAddress" + ] + } + } + ], + "sections": [], + "conditions": [], + "phaseBanner": { + "phase": "beta" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "title": "Thank you for completing the survey", + "nextSteps": "You can now close this page." + } + } + } +} From e4841c91903f065bca23aa29d66675ccbb5f0131 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 7 Mar 2025 16:24:45 +0000 Subject: [PATCH 110/403] feedback form validation messages --- runner/src/server/forms/feedback.json | 35 ++++++++++++++++++--------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json index 6d78132994..a0d43f4c6f 100644 --- a/runner/src/server/forms/feedback.json +++ b/runner/src/server/forms/feedback.json @@ -10,7 +10,11 @@ "components": [ { "name": "Feedback", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select how you would describe Report an outbreak" + } + }, "type": "CheckboxesField", "title": "How would you describe Report an outbreak?", "hint": "Select all that apply", @@ -18,8 +22,16 @@ }, { "name": "OtherFeedbackTextBox", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter your feedback about any difficulties or highlights you experienced, and how we could improve the service", + "string.max": "Your feedback about any difficulties or highlights you experienced, and how we could improve the service, must be 2000 characters or less" + } + }, "type": "MultilineTextField", + "schema": { + "maxlength": 2000 + }, "title": "Tell us about any difficulties or highlights you experienced, and how we could improve the service.", "hint": "Do not include any personal information here, for example patient or disease details." }, @@ -32,7 +44,13 @@ { "name": "FeedbackEmailAddress", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "schema": { + "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" }, "title": "Email address for a researcher to contact you", "type": "TextField" @@ -94,20 +112,13 @@ { "name": "FeedbackForm", "title": "CareOBRA FeedbackForm", - "type": "notify", + "type": "email", "outputConfiguration": { "apiKey": { "test": "local_guest_list-db3df15e-136e-484b-8035-2ebe1f382799-e71ae908-dbd4-479f-97cf-3e3079b977c7", "production": "productionKey" }, - "emailField": "FeedbackEmailAddress", - "templateId": "83d1c036-dfeb-4d5b-b4e3-e8125810c663", - "addReferencesToPersonalisation": false, - "personalisation": [ - "Feedback", - "OtherFeedbackTextBox", - "FeedbackEmailAddress" - ] + "emailAddress": "emily.j.evans@ukhsa.gov.uk" } } ], From 457320c184253cc920664b3cc710015353b3affc Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Mar 2025 13:19:29 +0000 Subject: [PATCH 111/403] make feedback email an env var --- runner/src/server/forms/feedback.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json index a0d43f4c6f..ca8b9190a5 100644 --- a/runner/src/server/forms/feedback.json +++ b/runner/src/server/forms/feedback.json @@ -118,7 +118,7 @@ "test": "local_guest_list-db3df15e-136e-484b-8035-2ebe1f382799-e71ae908-dbd4-479f-97cf-3e3079b977c7", "production": "productionKey" }, - "emailAddress": "emily.j.evans@ukhsa.gov.uk" + "emailAddress": "${feedbackEmail}" } } ], From fb45927a649829c75bf05bef38746fac28d7e6e6 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 10 Mar 2025 15:15:47 +0000 Subject: [PATCH 112/403] confirmation page feedback form --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 2 + runner/src/server/forms/feedback.json | 4 +- .../server/plugins/initialiseSession/types.ts | 1 + runner/src/server/schemas/webhookSchema.ts | 1 + runner/src/server/views/confirmation.html | 92 ++++++++++--------- 6 files changed, 57 insertions(+), 44 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index e2a4a633a4..971622754c 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -128,6 +128,7 @@ export type ConfirmationPage = { nextSteps: Toggleable; referenceTitle: string; referenceContent: string; + hidePanel?: boolean; }; components: ComponentDef[]; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index ce980fdbd1..467aba6417 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -154,6 +154,7 @@ const confirmationPageSchema = joi.object({ ), referenceTitle: joi.string(), referenceContent: joi.string(), + hidePanel: joi.boolean().optional(), }) .default(), components: joi.array().items(componentSchema), @@ -231,6 +232,7 @@ const notifySchema = joi.object().keys({ }); const emailSchema = joi.object().keys({ + apiKey: [joi.string().allow("").optional(), multiApiKeySchema], emailAddress: joi.string(), }); diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json index ca8b9190a5..c0299b1950 100644 --- a/runner/src/server/forms/feedback.json +++ b/runner/src/server/forms/feedback.json @@ -130,8 +130,8 @@ "specialPages": { "confirmationPage": { "customText": { - "title": "Thank you for completing the survey", - "nextSteps": "You can now close this page." + "nextSteps": "

    Thank you for completing this survey

    You can now close this page.

    ", + "hidePanel": true } } } diff --git a/runner/src/server/plugins/initialiseSession/types.ts b/runner/src/server/plugins/initialiseSession/types.ts index 531cf57570..b0a8315053 100644 --- a/runner/src/server/plugins/initialiseSession/types.ts +++ b/runner/src/server/plugins/initialiseSession/types.ts @@ -17,6 +17,7 @@ export type InitialiseSessionOptions = { title: string; paymentSkipped?: false | string; nextSteps?: false | string; + hidePanel?: boolean; }; components: ContentComponentsDef[]; }; diff --git a/runner/src/server/schemas/webhookSchema.ts b/runner/src/server/schemas/webhookSchema.ts index e490291e88..bec9f0ffb4 100644 --- a/runner/src/server/schemas/webhookSchema.ts +++ b/runner/src/server/schemas/webhookSchema.ts @@ -78,6 +78,7 @@ const optionsSchema: joi.ObjectSchema< title: joi.string().optional().allow(false, ""), paymentSkipped: joi.string().optional().allow(false, ""), nextSteps: joi.string().optional().allow(false, ""), + hidePanel: joi.boolean().optional(), }) .optional(), components: joi.array().items(componentSchema), diff --git a/runner/src/server/views/confirmation.html b/runner/src/server/views/confirmation.html index 25c4008388..5fad12fe0c 100644 --- a/runner/src/server/views/confirmation.html +++ b/runner/src/server/views/confirmation.html @@ -14,58 +14,66 @@ {% endblock %} {% block content %} -
    - {% set tmpl = 'Your reference number
    ' + reference + '' if reference else '' %} - {% if not customText %} - {{ govukPanel({ - titleText: "Application complete", - html: tmpl - }) }} - {% if paymentSkipped %} -

    - Someone will be in touch to make a payment. -

    - {% else %} -

    - You will receive an email with details with the next steps. -

    - {% endif %} - {% if components.length > 0 %} -

    What happens next

    + {% set tmpl = 'Your reference number
    ' + reference + '' if reference else '' %} + {% if reference %} +

    Your reference number is: {{ reference }}

    + {% endif %} + {% if not customText.hidePanel %} + {% if not customText %} + {{ govukPanel({ + titleText: "Application complete", + html: tmpl + }) }} + {% else %} + {{ govukPanel({ + titleText: customText.title, + html: tmpl + }) }} + {% endif %} {% endif %} - {% else %} - {{ govukPanel({ - titleText: customText.title, - html: tmpl - }) }} - {% if paymentSkipped and customText.paymentSkipped %} -

    - {{ customText.paymentSkipped | safe }} -

    + + + {% if not customText %} + {% if paymentSkipped %} +

    + Someone will be in touch to make a payment. +

    + {% else %} +

    + You will receive an email with details with the next steps. +

    + {% endif %} {% else %} - {% if reference %} -

    - {{ customText.referenceTitle }} -

    -

    - Your reference number is: {{ reference }}. - {{ customText.referenceContent }} -

    - {% endif %} - {% if customText.nextSteps %} + {% if paymentSkipped and customText.paymentSkipped %}

    - {{ customText.nextSteps | safe }} + {{ customText.paymentSkipped | safe }}

    + {% else %} + {% if reference and not useNormalHeading %} +

    + {{ customText.referenceTitle }} +

    +

    + Your reference number is: {{ reference }}. + {{ customText.referenceContent }} +

    + {% endif %} + + {% if customText.nextSteps %} +

    + {{ customText.nextSteps | safe }} +

    + {% endif %} {% endif %} {% endif %} + {% if components.length > 0 %}

    What happens next

    {% endif %} - {% endif %} - - {{ componentList(components) }} + + {{ componentList(components) }}
    -{% endblock %} +{% endblock %} \ No newline at end of file From 41fde49b5ad715b2615f38a3ffa8426e2a6af18a Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 11 Mar 2025 07:54:16 +0000 Subject: [PATCH 113/403] make api key an env var --- model/src/data-model/types.ts | 2 ++ model/src/schema/schema.ts | 1 + runner/src/server/forms/feedback.json | 12 +++++++----- .../plugins/engine/models/submission/EmailModel.ts | 6 ++---- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 971622754c..8821ca461e 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -84,6 +84,8 @@ export enum OutputType { } export type EmailOutputConfiguration = { + apiKey: string; + notifyTemplateId: string; emailAddress: string; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 467aba6417..da2c11367d 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -234,6 +234,7 @@ const notifySchema = joi.object().keys({ const emailSchema = joi.object().keys({ apiKey: [joi.string().allow("").optional(), multiApiKeySchema], emailAddress: joi.string(), + notifyTemplateId: joi.string(), }); const webhookSchema = joi.object().keys({ diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json index c0299b1950..0b6060964f 100644 --- a/runner/src/server/forms/feedback.json +++ b/runner/src/server/forms/feedback.json @@ -114,11 +114,9 @@ "title": "CareOBRA FeedbackForm", "type": "email", "outputConfiguration": { - "apiKey": { - "test": "local_guest_list-db3df15e-136e-484b-8035-2ebe1f382799-e71ae908-dbd4-479f-97cf-3e3079b977c7", - "production": "productionKey" - }, - "emailAddress": "${feedbackEmail}" + "apiKey": "${notifyApiKey}", + "emailAddress": "${feedbackEmail}", + "notifyTemplateId": "83d1c036-dfeb-4d5b-b4e3-e8125810c663" } } ], @@ -127,6 +125,10 @@ "phaseBanner": { "phase": "beta" }, + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, "specialPages": { "confirmationPage": { "customText": { diff --git a/runner/src/server/plugins/engine/models/submission/EmailModel.ts b/runner/src/server/plugins/engine/models/submission/EmailModel.ts index 20a5b7ebbe..384a156709 100644 --- a/runner/src/server/plugins/engine/models/submission/EmailModel.ts +++ b/runner/src/server/plugins/engine/models/submission/EmailModel.ts @@ -1,9 +1,7 @@ import { FormModel } from "server/plugins/engine/models"; import { TEmailModel } from "./types"; -import config from "server/config"; import { EmailOutputConfiguration } from "@xgovformbuilder/model"; import { WebhookData } from "server/plugins/engine/models/types"; -const { notifyTemplateId, notifyAPIKey } = config; /** * returns an object used for sending email requests. Used by {@link SummaryViewModel} @@ -31,8 +29,8 @@ export function EmailModel( formName, formPayload: data.join("\r\n"), }, - apiKey: notifyAPIKey, - templateId: notifyTemplateId, + apiKey: outputConfiguration.apiKey, + templateId: outputConfiguration.notifyTemplateId, emailAddress: outputConfiguration.emailAddress, }; } From a03ffc9cf7ac440bc91436f72fdca91d2c61455b Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 11 Mar 2025 08:48:13 +0000 Subject: [PATCH 114/403] add service name and feedback link to confirmation page --- runner/src/server/plugins/applicationStatus/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runner/src/server/plugins/applicationStatus/index.ts b/runner/src/server/plugins/applicationStatus/index.ts index 95cf414eae..fb8e232f18 100644 --- a/runner/src/server/plugins/applicationStatus/index.ts +++ b/runner/src/server/plugins/applicationStatus/index.ts @@ -70,6 +70,8 @@ const index = { form, newReference ); + viewModel.name = form.name; + viewModel.feedbackLink = form.def.feedback.url; await cacheService.setConfirmationState(request, { confirmation: viewModel, From 50860b8004c9ad556fbbd49ccf4a20ef0eafa05b Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 11 Mar 2025 13:47:21 +0000 Subject: [PATCH 115/403] remove binding, not necessary --- .../CheckpointSummaryPageController.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts index 4467d8607c..5dd216160c 100644 --- a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts @@ -161,10 +161,8 @@ export class CheckpointSummaryPageController extends PageController { const returnPath = `${pagePath}${this.returnUrlParameter}`; const model = this.model; - // Bind the findDisplayValue method to the current instance - const boundFindDisplayValue = this.findDisplayValue.bind(this); - - return function (component: FormComponent) { + return (component: FormComponent) => { + // Get initial display value let valueText = component.getDisplayStringFromState(sectionState); if ( @@ -175,10 +173,7 @@ export class CheckpointSummaryPageController extends PageController { fullState.originalFilenames?.[component.name]?.originalFilename; } - // Try to find alternate display value - const alternateValue = boundFindDisplayValue(component, valueText); - - // Use alternate value if found + const alternateValue = this.findDisplayValue(component, valueText); if (alternateValue) { valueText = alternateValue; } From 9ff0b10f7b9c5702d7ec6a3ab13c6de118877167 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 11 Mar 2025 14:53:32 +0000 Subject: [PATCH 116/403] Fix negative numbers accepted in flu antibiotics Q --- runner/src/server/forms/ReportAnOutbreak.json | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 63be2583fe..eab6ba75d9 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2143,7 +2143,15 @@ "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", "type": "NumberField", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer" + } + }, + "schema": { + "min": 0, + "max": 999 } }, { @@ -2563,7 +2571,15 @@ "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", "type": "NumberField", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer" + } + }, + "schema": { + "min": 0, + "max": 999 } }, { From 96eb99efd35f3561800531bd944fbc5ef7bb424c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 12 Mar 2025 08:20:36 +0000 Subject: [PATCH 117/403] Fix feedback link on confirmation page --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 61e03143e4..3e0b8e0bef 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -5553,7 +5553,7 @@ "specialPages": { "confirmationPage": { "customText": { - "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", + "nextSteps": "

    What happens next

    We will send 2 automated emails to {{ MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk COVID-19 outbreak, a medium-risk COVID-19 outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", "title": "Report sent", "referenceTitle": "Your outbreak reference number", "referenceContent": "Use this number if you need to contact the UKHSA health protection team about your outbreak." From 85280c4173b1d5bc1e08fc5a5895003a7b217a2c Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 12 Mar 2025 16:10:28 +0000 Subject: [PATCH 118/403] Setting details page error messages and validation --- runner/src/server/forms/ReportAnOutbreak.json | 32 ++++++++++++++---- .../components/SelectionControlField.ts | 33 ++++++++++++++----- .../pageControllers/PageControllerBase.ts | 6 ++-- 3 files changed, 54 insertions(+), 17 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 61e03143e4..40ca0dbe71 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2738,7 +2738,12 @@ "components": [ { "name": "SettingName", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter your setting name", + "string.base": "Enter your setting name" + } + }, "type": "TextField", "nameHasError": false, "title": "Your setting name", @@ -2749,7 +2754,12 @@ }, { "name": "SettingPostcode", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter postcode", + "string.pattern.base": "Enter a full UK postcode" + } + }, "type": "TextField", "nameHasError": false, "title": "Your setting postcode", @@ -2763,8 +2773,8 @@ "options": { "required": true, "customValidationMessages": { - "string.empty": "Your local UKHSA health protection team is required", - "string.base": "Your local UKHSA health protection team is required" + "string.empty": "Select your local UKHSA health protection team", + "any.only": "Select your local UKHSA health protection team" } }, "type": "SelectField", @@ -2786,13 +2796,23 @@ { "name": "CQCRegistered", "options": { + "customValidationMessages": { + "any.required": "Select yes if your setting is registered with the Care Quality Commission (CQC)" + }, "conditionallyRevealedComponents": { "CQCLocationID": { "type": "TextField", "name": "CQCLocationID", "title": "Enter your CQC location ID, for example, 1-123456789", - "options": {}, - "schema": {} + "options": { + "customValidationMessages": { + "string.empty": "CQC location ID cannot be blank", + "string.pattern.base": "Enter a CQC location ID in the correct format" + } + }, + "schema": { + "regex": "^1-\\d{9}$" + } } } }, diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 609682993f..2fd6875cdc 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -19,6 +19,7 @@ export class SelectionControlField extends ListFormComponent { constructor(def, model) { super(def, model); const { options } = def; + this.options = options; const { items } = this; @@ -31,6 +32,21 @@ export class SelectionControlField extends ListFormComponent { .conditionallyRevealedComponents[item.value]; if (conditionallyRevealedComponent != undefined) { + // Pass custom validation messages to the conditionally revealed component + if (options.customValidationMessages) { + conditionallyRevealedComponent.options = + conditionallyRevealedComponent.options || {}; + conditionallyRevealedComponent.options.customValidationMessages = + conditionallyRevealedComponent.options.customValidationMessages || + {}; + + // Merge parent validation messages with child validation messages + Object.assign( + conditionallyRevealedComponent.options.customValidationMessages, + options.customValidationMessages + ); + } + item.hasConditionallyRevealedComponents = true; item.conditionallyRevealedComponents = new ComponentCollection( [conditionallyRevealedComponent], @@ -196,19 +212,20 @@ export class SelectionControlField extends ListFormComponent { schemaKeysFunctionName ](); + const conditionalMessages = + item.conditionallyRevealedComponents.items[0].options + .customValidationMessages || {}; + Object.keys(conditionalSchemaKeys).forEach((key) => { - Object.assign(schemaKeys, { - [key]: joi.alternatives().conditional(joi.ref(conditionalName), { - is: key, - then: joi.string(), //TODO should work for other validations - otherwise: joi.optional(), - }), + let schema = joi.alternatives().conditional(joi.ref(conditionalName), { + is: item.value, // Make sure this is the correct value to check against + then: conditionalSchemaKeys[key].messages(conditionalMessages), + otherwise: joi.optional(), }); + schemaKeys[key] = schema; }); }); - //TODO should work for checkbox components - return schemaKeys; } } diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 7c646033d6..f6f9a69ab1 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -625,7 +625,7 @@ export class PageControllerBase { }); formResult.errors = Object.is(formResult.errors, null) - ? { titleText: "Fix the following errors" } + ? { titleText: "There is a problem" } : formResult.errors; formResult.errors.errorList = reformattedErrors; } @@ -652,7 +652,7 @@ export class PageControllerBase { }); formResult.errors = Object.is(formResult.errors, null) - ? { titleText: "Fix the following errors" } + ? { titleText: "There is a problem" } : formResult.errors; formResult.errors.errorList = reformattedErrors; } @@ -845,7 +845,7 @@ export class PageControllerBase { } get errorSummaryTitle() { - return "Fix the following errors"; + return "There is a problem"; } /** From 0dab88473a6694bc8f4d5c4bdb10d231ac3bd4f9 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 12 Mar 2025 16:15:43 +0000 Subject: [PATCH 119/403] Remove comment --- .../server/plugins/engine/components/SelectionControlField.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 2fd6875cdc..855f1eaaf3 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -218,7 +218,7 @@ export class SelectionControlField extends ListFormComponent { Object.keys(conditionalSchemaKeys).forEach((key) => { let schema = joi.alternatives().conditional(joi.ref(conditionalName), { - is: item.value, // Make sure this is the correct value to check against + is: item.value, then: conditionalSchemaKeys[key].messages(conditionalMessages), otherwise: joi.optional(), }); From 281d4c70229baefa98a7261a500f3ab8f331ba3f Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 13 Mar 2025 09:21:26 +0000 Subject: [PATCH 120/403] missing feedback form option --- runner/src/server/forms/feedback.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json index 0b6060964f..aa5ae95ed7 100644 --- a/runner/src/server/forms/feedback.json +++ b/runner/src/server/forms/feedback.json @@ -6,7 +6,7 @@ "pages": [ { "path": "/start", - "title": "Give feedback on Report an Outbreak", + "title": "Give feedback on Report an outbreak", "components": [ { "name": "Feedback", @@ -77,6 +77,10 @@ "text": "Useful resource", "value": "Useful resource" }, + { + "text": "Easy to understand", + "value": "Easy to understand" + }, { "text": "Easy to complete", "value": "Easy to complete" From 7bcd0ec42bb8fd3da6a7cf1e9d1b3b424623d1ad Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 13 Mar 2025 11:24:40 +0000 Subject: [PATCH 121/403] Add in Magic link authentication (#284) --- model/src/data-model/types.ts | 3 + model/src/schema/schema.ts | 5 + runner/config/production.json | 2 +- runner/config/test.json | 2 +- runner/src/server/forms/ReportAnOutbreak.json | 13 +- runner/src/server/forms/magic-link.json | 176 ++++++++++++++ .../server/plugins/engine/components/Para.ts | 9 +- .../engine/models/submission/NotifyModel.ts | 3 +- .../pageControllers/MagicLinkController.ts | 155 +++++++++++++ .../MagicLinkStartPageController.ts | 25 ++ .../pageControllers/PageControllerBase.ts | 54 +++++ .../pageControllers/ResubmitPageController.ts | 218 ++++++++++++++++++ .../plugins/engine/pageControllers/helpers.ts | 6 + .../plugins/engine/pageControllers/index.ts | 3 + .../plugins/initialiseSession/helpers.ts | 15 ++ runner/src/server/services/statusService.ts | 50 ++-- runner/src/server/utils/hmac.ts | 84 +++++++ 17 files changed, 800 insertions(+), 23 deletions(-) create mode 100644 runner/src/server/forms/magic-link.json create mode 100644 runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts create mode 100644 runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts create mode 100644 runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts create mode 100644 runner/src/server/utils/hmac.ts diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 8821ca461e..dc09e3534a 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -195,6 +195,7 @@ export type FormDefinition = { lists: List[]; sections: Section[]; startPage?: Page["path"] | undefined; + authentication?: boolean | undefined; name?: string | undefined; feedback?: Feedback; phaseBanner?: PhaseBanner; @@ -208,4 +209,6 @@ export type FormDefinition = { paymentReferenceFormat?: string; feeOptions: FeeOptions; exitOptions: ExitOptions; + jwtKey?: string | undefined; + toggle?: boolean | string | undefined; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 90e7581d6d..185dd136b1 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -230,6 +230,7 @@ const notifySchema = joi.object().keys({ addReferencesToPersonalisation: joi.boolean().optional(), emailReplyToIdConfiguration: joi.array().items(replyToConfigurationSchema), escapeURLs: joi.boolean().default(false), + hmacKey: joi.string().optional(), }); const emailSchema = joi.object().keys({ @@ -317,6 +318,7 @@ export const Schema = joi name: localisedString.optional(), feedback: feedbackSchema, startPage: joi.string().required(), + authentication: joi.boolean().optional(), pages: joi .array() .required() @@ -335,9 +337,12 @@ export const Schema = joi version: joi.number().default(CURRENT_VERSION), phaseBanner: phaseBannerSchema, specialPages: specialPagesSchema.optional(), + jwtKey: joi.string().optional(), feeOptions: feeOptionSchema, exitOptions: exitSchema.optional(), showFilenamesOnSummaryPage: joi.boolean().optional(), + toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), + toggleRedirect: joi.string().optional(), }); /** diff --git a/runner/config/production.json b/runner/config/production.json index 9a0bba2e85..3e552e02b8 100644 --- a/runner/config/production.json +++ b/runner/config/production.json @@ -1,6 +1,6 @@ { "env": "production", "logPrettyPrint": false, - "enableCsrf": true, + "enforceCsrf": true, "previewMode": false } diff --git a/runner/config/test.json b/runner/config/test.json index 7b02cb55d9..82c6aa5adc 100644 --- a/runner/config/test.json +++ b/runner/config/test.json @@ -6,7 +6,7 @@ ], "isTest": true, "previewMode": true, - "enforceCsrf": false, + "enforceCsrf": true, "initialisedSessionKey": "predictable-key", "env": "test", "documentUploadApiUrl": "http://localhost:9000" diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 10df867565..4869aed926 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1,5 +1,7 @@ { "metadata": {}, + "authentication": true, + "toggle": "${magicLinkToggle}", "startPage": "/start", "pages": [ { @@ -10,7 +12,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    From: UK Health Security Agency
    Applies to England

    \n

    You can use this service if you provide adult social care. This includes a care home, supported living or extra care.

    \n

    Use this service to report:

    \n
      \n
    • a single confirmed case of flu in your setting
    • \n
    • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
    • \n
    \n

    ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

    \n

    It should take about 10 minutes to complete.

    \n

    Before you start

    \n

    If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

    \n

    If you cannot test people, do not wait. Report as soon as possible.

    \n

    You'll need to know the:

    \n
      \n
    • setting postcode
    • \n
    • Care Quality Commission (CQC) location ID, if you are CQC registered
    • \n
    • total number of service users and staff in your setting
    • \n
    • number of service users and staff with symptoms
    • \n
    • dates when people's symptoms started
    • \n
    • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
    • \n
    • number of service users and staff vaccinated for COVID-19 and flu
    • \n
    • number of service users vaccinated for RSV
    • \n
    \n

    You’ll need to give your email address to access this service.

    \n\n

    Updating about an existing outbreak

    \n

    Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

    \n

    Identifying an ARI outbreak

    \n

    You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

    \n

    Why you should report

    \n

    Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

    \n

    Get help

    \n

    If you need help using the service or have any other questions, contact your local UKHSA health protection team.

    \n

    If you need urgent medical advice

    \n

    If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    " + "content": "

    From: UK Health Security Agency
    Applies to England

    \n

    You can use this service if you provide adult social care. This includes a care home, supported living or extra care.

    \n

    Use this service to report:

    \n
      \n
    • a single confirmed case of flu in your setting
    • \n
    • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
    • \n
    \n

    ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

    \n

    It should take about 10 minutes to complete.

    \n

    Before you start

    \n

    If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

    \n

    If you cannot test people, do not wait. Report as soon as possible.

    \n

    You'll need to know the:

    \n
      \n
    • setting postcode
    • \n
    • Care Quality Commission (CQC) location ID, if you are CQC registered
    • \n
    • total number of service users and staff in your setting
    • \n
    • number of service users and staff with symptoms
    • \n
    • dates when people's symptoms started
    • \n
    • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
    • \n
    • number of service users and staff vaccinated for COVID-19 and flu
    • \n
    • number of service users vaccinated for RSV
    • \n
    \n

    You’ll need to give your email address to access this service.

    \nStart now\n

    Updating about an existing outbreak

    \n

    Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

    \n

    Identifying an ARI outbreak

    \n

    You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

    \n

    Why you should report

    \n

    Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

    \n

    Get help

    \n

    If you need help using the service or have any other questions, contact your local UKHSA health protection team.

    \n

    If you need urgent medical advice

    \n

    If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    " } ], "sidebarContent": { @@ -27,13 +29,13 @@ } ] }, + "controller": "MultiStartPageController", + "showContinueButton": false, "next": [ { "path": "/setting" } - ], - "controller": "MultiStartPageController", - "showContinueButton": false + ] }, { "path": "/setting", @@ -5579,5 +5581,6 @@ "referenceContent": "Use this number if you need to contact the UKHSA health protection team about your outbreak." } } - } + }, + "jwtKey": "${jwtKey}" } diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json new file mode 100644 index 0000000000..b2b0190a6b --- /dev/null +++ b/runner/src/server/forms/magic-link.json @@ -0,0 +1,176 @@ +{ + "startPage": "/start", + "skipSummary": true, + "toggle": "${magicLinkToggle}", + "toggleRedirect": "/ReportAnOutbreak/setting", + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController" + }, + { + "title": "What is your email address?", + "path": "/email", + "continueButtonText": "Send secure link", + "showContinueButton": true, + "backLinkFallback": "/ReportAnOutbreak/start", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    Click on the link on the device that you'll use to access the service.", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Email address", + "name": "email", + "schema": { + "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" + }, + "options": { + "exposeToContext": true, + "customValidationMessages": { + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + } + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "ResubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "backLinkFallback": "/magic-link/magic-link", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to Report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email.

    Resubmit", + "schema": {} + } + ] + }, + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to Report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "path": "/email-confirmed", + "title": "Email confirmed", + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "type": "Para", + "content": "You have successfully confirmed your email address. You can continue to Report an outbreak.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to Report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "name": "Report an outbreak", + "phaseBanner": { + "phase": "beta" + }, + "metadata": {}, + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "CareOBRA MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "${notifyApiKey}", + "templateId": "${NotifyTemplateId}", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "${HmacKey}" + } + } + ], + "jwtKey": "${jwtKey}", + + "version": 2, + "conditions": [] +} diff --git a/runner/src/server/plugins/engine/components/Para.ts b/runner/src/server/plugins/engine/components/Para.ts index 1845583a4f..329826d9e6 100644 --- a/runner/src/server/plugins/engine/components/Para.ts +++ b/runner/src/server/plugins/engine/components/Para.ts @@ -1,12 +1,19 @@ import { ComponentBase } from "./ComponentBase"; import { FormData, FormSubmissionErrors } from "../types"; +import config from "../../../config"; +import nunjucks from "nunjucks"; export class Para extends ComponentBase { getViewModel(formData: FormData, errors: FormSubmissionErrors) { const options: any = this.options; + + let content = this.content; + if (config.allowUserTemplates) { + content = nunjucks.renderString(content, { ...formData }); + } const viewModel = { ...super.getViewModel(formData, errors), - content: this.content, + content: content, }; if (options.condition) { diff --git a/runner/src/server/plugins/engine/models/submission/NotifyModel.ts b/runner/src/server/plugins/engine/models/submission/NotifyModel.ts index f005f432fc..30483f0824 100644 --- a/runner/src/server/plugins/engine/models/submission/NotifyModel.ts +++ b/runner/src/server/plugins/engine/models/submission/NotifyModel.ts @@ -37,9 +37,10 @@ export function NotifyModel( personalisationFieldCustomisation = {}, emailReplyToIdConfiguration, escapeURLs = false, - templateId, } = outputConfiguration; + let { templateId } = outputConfiguration; + // @ts-ignore - eslint does not report this as an error, only tsc const personalisation: NotifyModel["personalisation"] = personalisationConfiguration.reduce( (acc, curr) => { diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts new file mode 100644 index 0000000000..c96e39b0c2 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts @@ -0,0 +1,155 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { redirectTo, redirectUrl } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { validateHmac } from "src/server/utils/hmac"; +import Jwt from "@hapi/jwt"; +import config from "server/config"; + +export class MagicLinkController extends PageController { + constructor(model, pageDef) { + super(model, pageDef); + } + + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const email = request.query.email; + const signature = request.query.signature; + const requestTime = request.query.request_time; + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + + const validation = await validateHmac( + email, + signature, + requestTime, + hmacKey + ); + + if (!validation.isValid) { + // Handle different invalid token cases + switch (validation.reason) { + case "expired": + return h.redirect("/magic-link/expired").code(302); + case "invalid_signature": + return h.redirect("/magic-link/incorrect-email").code(302); + default: + return h.redirect("/magic-link/error").code(302); + } + } + + this.langFromRequest(request); + + const { cacheService } = request.services([]); + const model = this.model; + + if (this.model.def.skipSummary) { + return this.makePostRouteHandler()(request, h); + } + const state = await cacheService.getState(request); + const viewModel = new SummaryViewModel(this.title, model, state, request); + + if (viewModel.endPage) { + return redirectTo( + request, + h, + `/${model.basePath}${viewModel.endPage.path}` + ); + } + + /** + * iterates through the errors. If there are errors, a user will be redirected to the page + * with the error with returnUrl=`/${model.basePath}/summary` in the URL query parameter. + */ + if (viewModel.errors) { + const errorToFix = viewModel.errors[0]; + const { path } = errorToFix; + const parts = path.split("."); + const section = parts[0]; + const property = parts.length > 1 ? parts[parts.length - 1] : null; + const iteration = parts.length === 3 ? Number(parts[1]) + 1 : null; + const pageWithError = model.pages.filter((page) => { + if (page.section && page.section.name === section) { + let propertyMatches = true; + let conditionMatches = true; + if (property) { + propertyMatches = + page.components.formItems.filter( + (item) => item.name === property + ).length > 0; + } + if ( + propertyMatches && + page.condition && + model.conditions[page.condition] + ) { + conditionMatches = model.conditions[page.condition].fn(state); + } + return propertyMatches && conditionMatches; + } + return false; + })[0]; + if (pageWithError) { + const params = { + returnUrl: redirectUrl(request, `/${model.basePath}/summary`), + num: iteration && pageWithError.repeatField ? iteration : null, + }; + return redirectTo( + request, + h, + `/${model.basePath}${pageWithError.path}`, + params + ); + } + } + + const declarationError = request.yar.flash("declarationError"); + if (declarationError.length) { + viewModel.declarationError = declarationError[0]; + } + return h.view("summary", viewModel); + }; + } + + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const email = request.query.email; + const signature = request.query.signature; + const requestTime = request.query.request_time; + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + + const validation = await validateHmac( + email, + signature, + requestTime, + hmacKey + ); + + if (validation.isValid) { + const token = Jwt.token.generate( + { email: request.query.email }, + { + key: this.model.def.jwtKey, + algorithm: config.initialisedSessionAlgorithm, + }, + { + ttlSec: config.initialisedSessionTimeout / 1000, + } + ); + + // Set the JWT in a cookie + h.state("auth_token", token, { + ttl: 20 * 60 * 1000, + isSecure: true, + isHttpOnly: true, + encoding: "none", + clearInvalid: true, + path: "/", + isSameSite: "Lax", + }); + } + + // Redirect to custom page instead of status + return redirectTo(request, h, `/${request.params.id}/email-confirmed`); + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts new file mode 100644 index 0000000000..7c8d8628c1 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts @@ -0,0 +1,25 @@ +import { PageController } from "./PageController"; +import { redirectTo } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; + +export class MagicLinkStartPageController extends PageController { + constructor(model, pageDef) { + super(model, pageDef); + } + + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + if (this.model.values.toggle === false) { + return redirectTo(request, h, this.model.values.toggleRedirect); + } + return this.makePostRouteHandler()(request, h); + }; + } + + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + // Redirect to custom page instead of status + return redirectTo(request, h, `/${request.params.id}/email`); + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index f6f9a69ab1..93db0aadeb 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -26,6 +26,8 @@ import { format, parseISO } from "date-fns"; import config from "server/config"; import nunjucks from "nunjucks"; import Joi from "joi"; +import Jwt, { HapiJwt } from "@hapi/jwt"; +import { verifyHmacToken } from "../../initialiseSession/helpers"; const FORM_SCHEMA = Symbol("FORM_SCHEMA"); const STATE_SCHEMA = Symbol("STATE_SCHEMA"); @@ -498,6 +500,31 @@ export class PageControllerBase { : redirectTo(request, h, `/${this.model.basePath}${startPage!}`); } + if (this.model.def.authentication && this.model.def.toggle === true) { + const authCookie = request.state.auth_token; // Check for the auth cookie + + if (!authCookie && !isStartPage && this.model.def.authentication) { + // If the auth cookie is missing and it's not the start page, redirect + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + if (authCookie) { + const tokenArtifacts = Jwt.token.decode(authCookie); + const { isValid, error } = verifyHmacToken( + tokenArtifacts, + this.model.def.jwtKey + ); + + if (!isValid) { + // If the token is invalid, redirect to the start page + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + } + } + formData.lang = lang; /** * We store the original filename for the user in a separate object (`originalFileNames`), however they are not used for any of the outputs. The S3 url is stored in the state. @@ -726,6 +753,33 @@ export class PageControllerBase { } const { cacheService } = request.services([]); + if (this.model.def.authentication && this.model.def.toggle === true) { + const startPage = this.model.def.startPage; + const isStartPage = this.path === `${startPage}`; + const currentPath = `/${this.model.basePath}${this.path}${request.url.search}`; + const authCookie = request.state.auth_token; // Check for the auth cookie + if (!authCookie && !isStartPage && this.model.def.authentication) { + // If the auth cookie is missing and it's not the start page, redirect + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + + if (authCookie) { + const tokenArtifacts = Jwt.token.decode(authCookie); + const { isValid, error } = verifyHmacToken( + tokenArtifacts, + this.model.def.jwtKey + ); + if (!isValid) { + // If the token is invalid, redirect to the start page + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + } + } + const shouldGoToExitPage = this.model.allowExit && request.payload?.action === "exit"; diff --git a/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts new file mode 100644 index 0000000000..ae65359fb6 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts @@ -0,0 +1,218 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { redirectTo, redirectUrl } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { createHmac } from "src/server/utils/hmac"; + +export class ResubmitPageController extends PageController { + constructor(model, pageDef) { + super(model, pageDef); + } + /** + * Returns an async function. This is called in plugin.ts when there is a GET request at `/{id}/{path*}`, + */ + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.langFromRequest(request); + + const { cacheService } = request.services([]); + const model = this.model; + + // @ts-ignore - ignoring so docs can be generated. Remove when properly typed + if (this.model.def.skipSummary) { + return this.makePostRouteHandler()(request, h); + } + const state = await cacheService.getState(request); + const viewModel = new SummaryViewModel(this.title, model, state, request); + + if (viewModel.endPage) { + return redirectTo( + request, + h, + `/${model.basePath}${viewModel.endPage.path}` + ); + } + + /** + * iterates through the errors. If there are errors, a user will be redirected to the page + * with the error with returnUrl=`/${model.basePath}/summary` in the URL query parameter. + */ + if (viewModel.errors) { + const errorToFix = viewModel.errors[0]; + const { path } = errorToFix; + const parts = path.split("."); + const section = parts[0]; + const property = parts.length > 1 ? parts[parts.length - 1] : null; + const iteration = parts.length === 3 ? Number(parts[1]) + 1 : null; + const pageWithError = model.pages.filter((page) => { + if (page.section && page.section.name === section) { + let propertyMatches = true; + let conditionMatches = true; + if (property) { + propertyMatches = + page.components.formItems.filter( + (item) => item.name === property + ).length > 0; + } + if ( + propertyMatches && + page.condition && + model.conditions[page.condition] + ) { + conditionMatches = model.conditions[page.condition].fn(state); + } + return propertyMatches && conditionMatches; + } + return false; + })[0]; + if (pageWithError) { + const params = { + returnUrl: redirectUrl(request, `/${model.basePath}/summary`), + num: iteration && pageWithError.repeatField ? iteration : null, + }; + return redirectTo( + request, + h, + `/${model.basePath}${pageWithError.path}`, + params + ); + } + } + + const declarationError = request.yar.flash("declarationError"); + if (declarationError.length) { + viewModel.declarationError = declarationError[0]; + } + return h.view("summary", viewModel); + }; + } + + /** + * Returns an async function. This is called in plugin.ts when there is a POST request at `/{id}/{path*}`. + * If a form is incomplete, a user will be redirected to the start page. + */ + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const { cacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + const summaryViewModel = new SummaryViewModel( + this.title, + model, + state, + request + ); + this.setFeedbackDetails(summaryViewModel, request); + + // redirect user to start page if there are incomplete form errors + if (summaryViewModel.result.error) { + request.logger.error( + `SummaryPage Error`, + summaryViewModel.result.error + ); + /** defaults to the first page */ + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + let startPageRedirect = redirectTo( + request, + h, + `/${model.basePath}${model.def.pages[0].path}` + ); + const startPage = model.def.startPage; + + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + if (startPage.startsWith("http")) { + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + startPageRedirect = redirectTo(request, h, startPage); + } else if (model.def.pages.find((page) => page.path === startPage)) { + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + startPageRedirect = redirectTo( + request, + h, + `/${model.basePath}${startPage}` + ); + } + + return startPageRedirect; + } + + // Get user email from state or request + const email = state["email"]; + + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + + if (email) { + const [hmac, currentTimestamp, hmacExpiryTime] = await createHmac( + email, + hmacKey + ); + + const hmacUrlStart = "/magic-link/return?email="; + + const hmacUrl = hmacUrlStart.concat( + email, + "&request_time=", + currentTimestamp.toString(), + "&signature=", + hmac.toString() + ); + + // Store HMAC signature in state + await cacheService.mergeState(request, { + hmacSignature: hmacUrl, + hmacExpiryTime: hmacExpiryTime, + }); + + const updatedState = await cacheService.getState(request); + + // Continue with the normal flow... + await cacheService.mergeState(request, { + hmacSignature: updatedState.hmacSignature, + hmacExpiryTime: updatedState.hmacExpiryTime, + outputs: summaryViewModel.outputs, + userCompletedSummary: true, + }); + + // The webhookData will be stored separately, without modification + await cacheService.mergeState(request, { + webhookData: summaryViewModel.validatedWebhookData, + }); + } else { + request.logger.warn([ + "HMAC", + "No email found in state", + JSON.stringify(state), + ]); + } + + request.logger.info( + ["Webhook data", "before send", request.yar.id], + JSON.stringify(summaryViewModel.validatedWebhookData) + ); + // After preparing the webhook data + await cacheService.mergeState(request, { + webhookData: summaryViewModel.validatedWebhookData, + }); + + // Get StatusService + const { statusService } = request.services([]); + + // Submit the form + await statusService.outputRequests(request); + + // Redirect to custom page instead of status + return redirectTo(request, h, `/${request.params.id}/check-your-email`); + }; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index eec305f797..f9ea90c39f 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -12,6 +12,9 @@ import { Page } from "@xgovformbuilder/model"; import { UploadPageController } from "server/plugins/engine/pageControllers/UploadPageController"; import { MultiStartPageController } from "server/plugins/engine/pageControllers/MultiStartPageController"; import { CheckpointSummaryPageController } from "src/server/plugins/engine/pageControllers/CheckpointSummaryPageController"; +import { ResubmitPageController } from "./ResubmitPageController"; +import { MagicLinkController } from "./MagicLinkController"; +import { MagicLinkStartPageController } from "./MagicLinkStartPageController"; const PageControllers = { DobPageController, @@ -25,6 +28,9 @@ const PageControllers = { UploadPageController, MultiStartPageController, CheckpointSummaryPageController, + ResubmitPageController, + MagicLinkController, + MagicLinkStartPageController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index 57799c1b21..3519039eb2 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -7,3 +7,6 @@ export { SummaryPageController } from "./SummaryPageController"; export { PageControllerBase } from "./PageControllerBase"; export { getPageController, controllerNameFromPath } from "./helpers"; export { CheckpointSummaryPageController } from "./CheckpointSummaryPageController"; +export { ResubmitPageController } from "./ResubmitPageController"; +export { MagicLinkController } from "./MagicLinkController"; +export { MagicLinkStartPageController } from "./MagicLinkStartPageController"; diff --git a/runner/src/server/plugins/initialiseSession/helpers.ts b/runner/src/server/plugins/initialiseSession/helpers.ts index a41a15e057..db645d4620 100644 --- a/runner/src/server/plugins/initialiseSession/helpers.ts +++ b/runner/src/server/plugins/initialiseSession/helpers.ts @@ -83,3 +83,18 @@ export const callbackValidation = (safelist = config.safelist) => return helpers.error("string.hostname"); }); + +export function verifyHmacToken(decodedToken, key) { + try { + Jwt.token.verify(decodedToken, { + key: key, + algorithm: config.initialisedSessionAlgorithm, + }); + return { isValid: true }; + } catch (err) { + return { + isValid: false, + error: `${err}`, + }; + } +} diff --git a/runner/src/server/services/statusService.ts b/runner/src/server/services/statusService.ts index 65c69253d1..2df6c6afd9 100644 --- a/runner/src/server/services/statusService.ts +++ b/runner/src/server/services/statusService.ts @@ -164,7 +164,9 @@ export class StatusService { otherOutputs, formData, newReference, - state.pay + state.pay, + state.hmacSignature, + state.hmacExpiryTime ); const requests = [ @@ -193,16 +195,28 @@ export class StatusService { webhookArgsFromState(state) { const { pay = {}, webhookData } = state; const { paymentSkipped } = pay; - const { metadata, fees, ...rest } = webhookData; - const webhookArgs = { - ...rest, - ...(!paymentSkipped && { fees }), - metadata: { - ...metadata, - ...state.metadata, - paymentSkipped: paymentSkipped ?? false, - }, - }; + const webhookArgs = (() => { + if (!webhookData) { + // Handle the case when webhookData is undefined + return { + metadata: { + ...state.metadata, + paymentSkipped: paymentSkipped ?? false, + }, + }; + } + + const { metadata, fees, ...rest } = webhookData; + return { + ...rest, + ...(!paymentSkipped && { fees }), + metadata: { + ...metadata, + ...state.metadata, + paymentSkipped: paymentSkipped ?? false, + }, + }; + })(); if (pay) { webhookArgs.metadata.pay = { @@ -218,7 +232,9 @@ export class StatusService { emailOutputsFromState( outputData, reference, - payReference + payReference, + hmacSignature, + hmacExpiryTime ): SendNotificationArgs { const { apiKey, @@ -239,6 +255,8 @@ export class StatusService { hasPaymentReference: !!payReference, paymentReference: payReference || "", }), + hmacSignature, + hmacExpiryTime, }, reference, apiKey, @@ -253,7 +271,9 @@ export class StatusService { outputs: OutputModel[] = [], formData = {}, reference, - payReference + payReference, + hmacSignature, + hmacExpiryTime ): OutputArgs { this.logger.trace(["StatusService", "outputArgs"], JSON.stringify(outputs)); return outputs.reduce( @@ -263,7 +283,9 @@ export class StatusService { const args = this.emailOutputsFromState( currentValue.outputData, reference, - payReference + payReference, + hmacSignature, + hmacExpiryTime ); this.logger.trace( ["StatusService", "outputArgs", "notify"], diff --git a/runner/src/server/utils/hmac.ts b/runner/src/server/utils/hmac.ts new file mode 100644 index 0000000000..9b6202cbe8 --- /dev/null +++ b/runner/src/server/utils/hmac.ts @@ -0,0 +1,84 @@ +import crypto from "crypto"; + +// Configuration constants +const TIME_THRESHOLD = 1200; // 5 minutes in seconds + +/** + * Formats a Unix timestamp to a human-readable time string + */ +function formatUnixTimestamp(timestamp: number): string { + const date = new Date(timestamp * 1000); // Convert seconds to milliseconds + let hours = date.getHours(); + const minutes = date.getMinutes(); + const ampm = hours >= 12 ? "pm" : "am"; + + hours = hours % 12 || 12; // Convert 0 to 12 for 12-hour format + + return `${hours}.${minutes < 10 ? "0" : ""}${minutes}${ampm}`; +} + +/** + * Creates an HMAC signature for authentication + */ +export async function createHmac(email: string, hmacKey: string) { + try { + // Get current timestamp + const currentTimestamp = Math.floor(Date.now() / 1000); + + // Prepare the data for HMAC calculation + const dataToHash = email + currentTimestamp; + + // Calculate the HMAC hash + const hmac = crypto + .createHmac("sha256", hmacKey) + .update(dataToHash) + .digest("hex"); + + const hmacExpiryTime = formatUnixTimestamp( + currentTimestamp + TIME_THRESHOLD + ); + + return [hmac, currentTimestamp, hmacExpiryTime]; + } catch (error) { + console.error("Error creating HMAC:", error); + throw error; + } +} + +/** + * Validates an HMAC signature + */ +export async function validateHmac( + email: string, + signature: string, + requestTime: string, + hmacKey: string +) { + try { + // Get the current UTC time + const currentUtcUnixTimestamp = Math.floor(Date.now() / 1000); + + if (currentUtcUnixTimestamp > parseInt(requestTime) + TIME_THRESHOLD) { + return { isValid: false, reason: "expired" }; + } + + // Prepare the data for HMAC calculation + const dataToHash = email + requestTime; + + // Calculate the HMAC hash + const xResponseHmac = crypto + .createHmac("sha256", hmacKey) + .update(dataToHash) + .digest("hex"); + + // Verify the HMAC + if (signature === xResponseHmac) { + return { isValid: true, reason: "valid" }; + } else { + return { isValid: false, reason: "invalid_signature" }; + } + } catch (error) { + console.error("Error validating HMAC:", error); + return { isValid: false, reason: "error" }; + } +} From 7ed3554996c835c0316787df4f160aa647732463 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 14:27:45 +0000 Subject: [PATCH 122/403] CAR-644 --- runner/src/server/forms/magic-link.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index b2b0190a6b..94967a1b17 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -71,7 +71,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to Report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.", "schema": {} }, { @@ -79,7 +79,7 @@ "options": {}, "type": "Para", "title": "If you've not received an email", - "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email.

    Request a new link", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", "schema": {} } ], From 191aebde2244127ced685da557c8551b5d647930 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 14:34:30 +0000 Subject: [PATCH 123/403] CAR-643 --- runner/src/server/forms/magic-link.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index 94967a1b17..82af9c812b 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -57,7 +57,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to Report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email.

    Resubmit", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email in 5 minutes, you can resubmit the email.

    Send a new email", "schema": {} } ] From ac0690cd40982c9c0a74157cdce8ba69cf1c4f00 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 14:44:34 +0000 Subject: [PATCH 124/403] CAR-1163 --- runner/src/server/forms/magic-link.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index 82af9c812b..e2fd84fffa 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -11,7 +11,7 @@ { "title": "What is your email address?", "path": "/email", - "continueButtonText": "Send secure link", + "continueButtonText": "Continue", "showContinueButton": true, "backLinkFallback": "/ReportAnOutbreak/start", "components": [ @@ -19,7 +19,7 @@ "name": "EmailIntro", "options": {}, "type": "Para", - "content": "We need to email you a secure link to the service.

    Click on the link on the device that you'll use to access the service.", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.

    If you're returning to a report that you started in the last 3 days, use the same email address.", "schema": {} }, { @@ -36,6 +36,13 @@ "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } } + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice.", + "schema": {} } ], "next": [ From 352874e2e802152117957ed0cc0599eb5ecade06 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 14:48:48 +0000 Subject: [PATCH 125/403] CAR-1165 --- runner/src/server/forms/ReportAnOutbreak.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..e198209c30 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -146,10 +146,6 @@ "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", "components": [ - { - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." - }, { "name": "TwoOrMoreCovid", "type": "RadiosField", @@ -159,6 +155,7 @@ "summaryTitle": "2 or more cases" }, "title": " ", + "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections, including chest infections.", "values": { "type": "listRef" } From 9e77e22f76e616167426fe2fdb954e114c019233 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 17:12:08 +0000 Subject: [PATCH 126/403] update text and add error --- runner/src/server/forms/ReportAnOutbreak.json | 7 +++++-- runner/src/server/forms/magic-link.json | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index e198209c30..b3856bd9aa 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -152,10 +152,13 @@ "list": "YesNo", "nameHasError": false, "options": { - "summaryTitle": "2 or more cases" + "summaryTitle": "2 or more cases", + "customValidationMessages": { + "any.required": "Select if you are reporting 2 or more cases" + } }, "title": " ", - "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections, including chest infections.", + "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections, including chest infections", "values": { "type": "listRef" } diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index e2fd84fffa..12a0d7d4cd 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -64,7 +64,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email in 5 minutes, you can resubmit the email.

    Send a new email", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email in 5 minutes, you can resubmit the email.

    Send a new email", "schema": {} } ] @@ -78,7 +78,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    ", "schema": {} }, { From 58248bd410466e62e99d773fd3c59317d49cf954 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 17:26:03 +0000 Subject: [PATCH 127/403] fix error message text --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b3856bd9aa..d8fe1f2a2d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -154,7 +154,7 @@ "options": { "summaryTitle": "2 or more cases", "customValidationMessages": { - "any.required": "Select if you are reporting 2 or more cases" + "any.required": "Select yes if you are reporting 2 or more cases" } }, "title": " ", From a4732b5c542997f6071782afd285ab2f78c44fc6 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 17:41:03 +0000 Subject: [PATCH 128/403] fix p text --- runner/src/server/forms/ReportAnOutbreak.json | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d8fe1f2a2d..3e45ccd3ba 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -158,7 +158,6 @@ } }, "title": " ", - "hint": "Include cases confirmed by a test and people with symptoms of acute respiratory infections, including chest infections", "values": { "type": "listRef" } From 7122b1057f48de376f5826ca8cd4b1a2efcb2714 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 17:43:20 +0000 Subject: [PATCH 129/403] CAR-1166 --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..f1a5185a07 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -215,7 +215,7 @@ "components": [ { "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections." + "content": "

    Include cases confirmed by a test and people with symptoms of acute respiratory infections, including chest infections

    " }, { "name": "TwoOrMoreCovid5days", From 6caaed9a3489e8c6a8f33a947f93314067f67f26 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 17:46:06 +0000 Subject: [PATCH 130/403] CAR-1168 --- runner/src/server/forms/ReportAnOutbreak.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index f1a5185a07..625914d417 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -319,7 +319,7 @@ }, { "path": "/2-or-more-cases-not-covid-or-flu", - "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", + "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "OtherInYourSetting", "components": [ @@ -331,8 +331,7 @@ "type": "RadiosField", "list": "YesNo", "nameHasError": false, - "title": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?", - "hint": "This includes viruses such as respiratory syncytial virus, rhinovirus, parainfluenza and chest infections", + "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "values": { "type": "listRef" } From cca12642d84b195dc5c12f434205b5e29457415a Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 22:03:46 +0000 Subject: [PATCH 131/403] CAR-1169 --- runner/src/server/forms/ReportAnOutbreak.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 625914d417..8a70296ab4 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1329,7 +1329,7 @@ }, "nameHasError": false, "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" + "hint": "Do not include cases that have been confirmed by a test as flu
    Include those who are currently in hospital or on visits out
    If none, enter 0" }, { "name": "ServiceUsersSymptomsNotTested", @@ -1341,7 +1341,7 @@ }, "nameHasError": false, "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out
    If none, enter 0" + "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Include those who are currently in hospital or on visits out
    If none, enter 0" }, { "name": "ServiceUsersChestInfectionCovid19", @@ -1354,7 +1354,7 @@ "max": 200 }, "nameHasError": false, - "title": "How many service users have been tested for COVID-19?", + "title": "How many service users have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0" } ], From 4ab8744b46008e2fa875448774162a09a8cf1c44 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 14 Mar 2025 22:19:19 +0000 Subject: [PATCH 132/403] CAR-1170 --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8a70296ab4..fc77ec2bfc 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1401,7 +1401,7 @@ }, "nameHasError": false, "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "This usually includes people who have a sudden onset of acute respiratory symptoms and fever
    Include those who are currently in hospital
    If none, enter 0" + "hint": "Include those who are currently in hospital
    If none, enter 0" }, { "name": "StaffChestInfectionCovid19", @@ -1414,7 +1414,7 @@ "max": 200 }, "nameHasError": false, - "title": "How many staff have been tested for COVID-19?", + "title": "How many service users have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0" } ], From 2b36455dc3051670dce81933259139b17e0a7b48 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sat, 15 Mar 2025 01:15:25 +0000 Subject: [PATCH 133/403] CAR-1171 --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..911c193ab0 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2850,7 +2850,7 @@ "required": false }, "type": "Para", - "content": "

    Provide a contact who will be available to receive:

    • an acknowledgment email including a copy of the answers submitted
    • advice by email
    • a follow up phone call (depending on the risk level)

    If possible, provide a work phone number and email address instead of personal contact details.

    Main contact person

    ", + "content": "

    Enter a contact to receive:

    • an acknowledgment email including a copy of the answers submitted
    • advice by email
    • a follow up phone call (depending on the risk level)

    If possible, provide a work phone number and email address instead of personal contact details.

    Main contact

    ", "schema": {} }, { @@ -2904,7 +2904,7 @@ "required": false }, "type": "Para", - "content": "

    Alternative contact

    Enter details for an alternative contact if you want the emails to also be sent to a second contact person. We will use this phone number for a follow up call if the main contact is not available.

    ", + "content": "

    Additional contact

    Enter another contact to also receive the emails. We will use this phone number if the main contact is not available.

    ", "schema": {} }, { From 0d678f1b11e21ca2bd397bb2bf5febb277575586 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sat, 15 Mar 2025 01:16:39 +0000 Subject: [PATCH 134/403] CAR-1374 --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 911c193ab0..22c0e7539f 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1068,7 +1068,7 @@ { "name": "ServiceUsersTestedCovid", "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", + "title": "How many service users have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0", "schema": { "min": 0, @@ -1081,7 +1081,7 @@ { "name": "ServiceUsersTestedFlu", "type": "NumberField", - "title": "How many service users have been tested for flu?", + "title": "How many service users have been tested for flu and had a negative test result", "hint": "If none, enter 0", "options": { "required": false From cb620fc0587ed9c8649c832525e6e807ebb367ba Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sat, 15 Mar 2025 01:19:36 +0000 Subject: [PATCH 135/403] CAR-1375 --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 22c0e7539f..2a72dc54de 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1124,7 +1124,7 @@ { "name": "StaffTestedCovid", "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", + "title": "How many staff have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0", "schema": { "min": 0, @@ -1137,7 +1137,7 @@ { "name": "StaffTestedFlu", "type": "NumberField", - "title": "How many staff have been tested for flu?", + "title": "How many staff have been tested for flu and had a negative test result?", "hint": "If none, enter 0", "options": { "required": false From d57cf18dd090715d4e9e1e1aa2ee084d707e43ed Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sat, 15 Mar 2025 01:22:36 +0000 Subject: [PATCH 136/403] CAR-1382 --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 2a72dc54de..5b447ba1ec 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1052,13 +1052,13 @@ }, { "path": "/service-users-ari-unknown", - "title": "Service users: number of cases", + "title": "Service users: number of other cases", "disableSingleComponentAsHeading": true, "components": [ { "name": "ServiceUsersConfirmedARI", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection but have not been tested for any infection?", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, From 8eb31fa9538eae9bb4e56a30c4ae7d3ba48e5351 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sat, 15 Mar 2025 01:24:08 +0000 Subject: [PATCH 137/403] CAR-1383 --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 5b447ba1ec..68532b1c44 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1104,7 +1104,7 @@ }, { "path": "/staff-ari-unknown", - "title": "Staff: number of cases", + "title": "Staff: number of other cases", "disableSingleComponentAsHeading": true, "components": [ { From 658dacb2dbb08431c1eb5e5da3b0af2e8ef213e3 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sun, 16 Mar 2025 19:25:17 +0000 Subject: [PATCH 138/403] CAR-1378 --- runner/src/server/forms/ReportAnOutbreak.json | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..69c978de7c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -535,6 +535,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for adenovirus", + "number.max": "The number of service users that have tested positive for adenovirus must be 999 or fewer", + "number.min": "The number of service users that have tested positive for adenovirus must be 999 or fewer" + } } } ], @@ -663,6 +670,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for human Metapneumovirus (hMPV)", + "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer", + "number.min": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer" + } } } ], @@ -775,6 +789,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for parainfluenza", + "number.max": "The number of service users that have tested positive for parainfluenza must be 999 or fewer", + "number.min": "The number of service users that have tested positive for parainfluenza must be 999 or fewer" + } } } ], @@ -871,6 +892,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for Respiratory Syncytial Virus (RSV)", + "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer", + "number.min": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer" + } } } ], @@ -951,6 +979,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for rhinovirus", + "number.max": "The number of service users that have tested positive for rhinovirus must be 999 or fewer", + "number.min": "The number of service users that have tested positive for rhinovirus must be 999 or fewer" + } } } ], @@ -1015,6 +1050,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for an other acute respiratory infection", + "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be 999 or fewer", + "number.min": "The number of service users that have tested positive for an other acute respiratory infection must be 999 or fewer" + } } } ], From 65174991cdaf1a8025eba1a8a6b8cff8c973cbac Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sun, 16 Mar 2025 19:28:49 +0000 Subject: [PATCH 139/403] CAR-1379 --- runner/src/server/forms/ReportAnOutbreak.json | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 69c978de7c..d6a2933f84 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -608,6 +608,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for adenovirus", + "number.max": "The number of staff that have tested positive for adenovirus must be 999 or fewer", + "number.min": "The number of staff that have tested positive for adenovirus must be 999 or fewer" + } } } ], @@ -735,6 +742,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for human Metapneumovirus (hMPV)", + "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer", + "number.min": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer" + } } } ], @@ -846,6 +860,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for parainfluenza", + "number.max": "The number of staff that have tested positive for parainfluenza must be 999 or fewer", + "number.min": "The number of staff that have tested positive for parainfluenza must be 999 or fewer" + } } } ], @@ -941,6 +962,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for Respiratory Syncytial Virus (RSV)", + "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer", + "number.min": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer" + } } } ], @@ -1020,6 +1048,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for rhinovirus", + "number.max": "The number of staff that have tested positive for rhinovirus must be 999 or fewer", + "number.min": "The number of staff that have tested positive for rhinovirus must be 999 or fewer" + } } } ], @@ -1083,6 +1118,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for an other acute respiratory infection", + "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be 999 or fewer", + "number.min": "The number of staff that have tested positive for an other acute respiratory infection must be 999 or fewer" + } } } ], From 84a9fba12d156d49f6796e55b5a653e7b2c55f7a Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sun, 16 Mar 2025 19:41:08 +0000 Subject: [PATCH 140/403] CAR-1380 --- runner/src/server/forms/ReportAnOutbreak.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d6a2933f84..117b61af7a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -462,6 +462,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + } } }, { @@ -474,7 +481,11 @@ "max": 999 }, "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + } } }, { @@ -483,7 +494,11 @@ "title": "How many service users have been tested for flu?", "hint": "If none, enter 0", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer", + "number.min": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer" + } }, "schema": { "min": 0, From c476e1944524caa56744d10b6aa445cc59196e00 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sun, 16 Mar 2025 19:44:09 +0000 Subject: [PATCH 141/403] CAR-1381 --- runner/src/server/forms/ReportAnOutbreak.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 117b61af7a..3beeeebdcd 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1265,6 +1265,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + } } }, { @@ -1277,7 +1284,11 @@ "max": 999 }, "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + } } }, { @@ -1286,7 +1297,11 @@ "title": "How many staff have been tested for flu?", "hint": "If none, enter 0", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer" + } }, "schema": { "min": 0, From 791b6446d6600f4fe91d7e2d6eff3c9ca4b28d0a Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Sun, 16 Mar 2025 19:52:43 +0000 Subject: [PATCH 142/403] CAR-1387 --- runner/src/server/forms/ReportAnOutbreak.json | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 3beeeebdcd..84ca8f8d5d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2245,7 +2245,11 @@ }, { "name": "FluSeverityCalledGPMultipleCases", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the number of service users you have called the GP about because of the severity of illness" + } + }, "type": "RadiosField", "nameHasError": false, "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", @@ -2272,7 +2276,11 @@ }, { "name": "FluSeverityHospitalisedMultipleCases", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the number of service users or staff that have been hospitalised because of an acute respiratory infection" + } + }, "type": "RadiosField", "nameHasError": false, "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", @@ -2283,7 +2291,11 @@ }, { "name": "FluSeverityDeathMultipleCases", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the number of service users or staff that have died because of an acute respiratory infection" + } + }, "type": "RadiosField", "nameHasError": false, "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", @@ -2298,7 +2310,11 @@ "type": "RadiosField", "nameHasError": false, "list": "FluSeveritySpecificArea", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select if the cases are linked to a specific area of the setting" + } + }, "schema": {}, "values": { "type": "listRef" From e597e80639a1f77c102ff53c61034e6eac4d4b51 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 00:18:27 +0000 Subject: [PATCH 143/403] CAR-1372 --- runner/src/server/forms/ReportAnOutbreak.json | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..672098adb4 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1058,11 +1058,18 @@ { "name": "ServiceUsersConfirmedARI", "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection but have not been tested for any infection?", + "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + } } }, { @@ -1075,7 +1082,11 @@ "max": 999 }, "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + } } }, { @@ -1084,7 +1095,11 @@ "title": "How many service users have been tested for flu?", "hint": "If none, enter 0", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer", + "number.min": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer" + } }, "schema": { "min": 0, From aeca9662a4a867806b7e91ef496dbc089edaf227 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 00:22:20 +0000 Subject: [PATCH 144/403] CAR-1373 --- runner/src/server/forms/ReportAnOutbreak.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 672098adb4..21e2cb5177 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1134,6 +1134,13 @@ "schema": { "min": 0, "max": 999 + }, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + } } }, { @@ -1146,7 +1153,11 @@ "max": 999 }, "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + } } }, { @@ -1155,7 +1166,11 @@ "title": "How many staff have been tested for flu?", "hint": "If none, enter 0", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer" + } }, "schema": { "min": 0, From d7d06edb28fc64fe58216602ba5264c0d991d838 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 09:22:31 +0000 Subject: [PATCH 145/403] fix text --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index fc77ec2bfc..bdd5db877a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1414,7 +1414,7 @@ "max": 200 }, "nameHasError": false, - "title": "How many service users have been tested for COVID-19 and had a negative test result?", + "title": "How many staff have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0" } ], From 872e36eff994d0649d4486e77fc115afcd4d9831 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 10:13:13 +0000 Subject: [PATCH 146/403] fix text --- runner/src/server/forms/ReportAnOutbreak.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 68532b1c44..feccf69455 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -451,7 +451,7 @@ }, { "path": "/service-users-ari-confirmed", - "title": "Service users: number of cases", + "title": "Service users: number of other cases", "disableSingleComponentAsHeading": true, "components": [ { @@ -467,7 +467,7 @@ { "name": "ServiceUsersTestedCovid", "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", + "title": "How many service users have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0", "schema": { "min": 0, @@ -480,7 +480,7 @@ { "name": "ServiceUsersTestedFlu", "type": "NumberField", - "title": "How many service users have been tested for flu?", + "title": "How many service users have been tested for flu and had a negative test result?", "hint": "If none, enter 0", "options": { "required": false @@ -1052,7 +1052,7 @@ }, { "path": "/service-users-ari-unknown", - "title": "Service users: number of other cases", + "title": "Service users: number of cases", "disableSingleComponentAsHeading": true, "components": [ { @@ -1081,7 +1081,7 @@ { "name": "ServiceUsersTestedFlu", "type": "NumberField", - "title": "How many service users have been tested for flu and had a negative test result", + "title": "How many service users have been tested for flu and had a negative test result?", "hint": "If none, enter 0", "options": { "required": false @@ -1104,7 +1104,7 @@ }, { "path": "/staff-ari-unknown", - "title": "Staff: number of other cases", + "title": "Staff: number of cases", "disableSingleComponentAsHeading": true, "components": [ { @@ -1156,7 +1156,7 @@ }, { "path": "/staff-ari-confirmed", - "title": "Staff: number of cases", + "title": "Staff: number of other cases", "components": [ { "name": "StaffSymptomsNotTested", @@ -1171,7 +1171,7 @@ { "name": "StaffTestedCovid", "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", + "title": "How many staff have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0", "schema": { "min": 0, @@ -1184,7 +1184,7 @@ { "name": "StaffTestedFlu", "type": "NumberField", - "title": "How many staff have been tested for flu?", + "title": "How many staff have been tested for flu and had a negative test result?", "hint": "If none, enter 0", "options": { "required": false @@ -1809,7 +1809,7 @@ }, { "path": "/staff-ari-cases", - "title": "Staff: Number of cases", + "title": "Staff: number of cases", "components": [ { "type": "Para", @@ -1831,7 +1831,7 @@ { "name": "OtherARIStaffTestedCovid", "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", + "title": "How many staff have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0", "options": { "required": false @@ -1844,7 +1844,7 @@ { "name": "OtherARIStaffTestedFlu", "type": "NumberField", - "title": "How many staff have been tested for flu?", + "title": "How many staff have been tested for flu and had a negative test result?", "hint": "If none, enter 0", "options": { "required": false From a4d433ce49038bdfd7638978354c7986aa862128 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 10:50:45 +0000 Subject: [PATCH 147/403] fix text --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 84ca8f8d5d..9a30c9784a 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2237,7 +2237,7 @@ }, { "path": "/flu-severity-multiple-cases", - "title": "Severity of illness in this outbreak", + "title": "Severity of illness", "components": [ { "type": "Para", From 35ac96d46f642d630aa3559d4128320f083e08c5 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 11:41:01 +0000 Subject: [PATCH 148/403] fix number err msg --- runner/src/server/forms/ReportAnOutbreak.json | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 9a30c9784a..6568682f18 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -466,8 +466,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", - "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" } } }, @@ -483,8 +483,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer", - "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" } } }, @@ -496,8 +496,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer", - "number.min": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer" + "number.max": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999" } }, "schema": { @@ -554,8 +554,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for adenovirus", - "number.max": "The number of service users that have tested positive for adenovirus must be 999 or fewer", - "number.min": "The number of service users that have tested positive for adenovirus must be 999 or fewer" + "number.max": "The number of service users that have tested positive for adenovirus must be more than 0 and up to 999", + "number.min": "The number of service users that have tested positive for adenovirus must be more than 0 and up to 999" } } } @@ -627,8 +627,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for adenovirus", - "number.max": "The number of staff that have tested positive for adenovirus must be 999 or fewer", - "number.min": "The number of staff that have tested positive for adenovirus must be 999 or fewer" + "number.max": "The number of staff that have tested positive for adenovirus must be more than 0 and up to 999", + "number.min": "The number of staff that have tested positive for adenovirus must be more than 0 and up to 999" } } } @@ -696,8 +696,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for human Metapneumovirus (hMPV)", - "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer", - "number.min": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer" + "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999", + "number.min": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999" } } } @@ -761,8 +761,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for human Metapneumovirus (hMPV)", - "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer", - "number.min": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be 999 or fewer" + "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999", + "number.min": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999" } } } @@ -822,8 +822,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for parainfluenza", - "number.max": "The number of service users that have tested positive for parainfluenza must be 999 or fewer", - "number.min": "The number of service users that have tested positive for parainfluenza must be 999 or fewer" + "number.max": "The number of service users that have tested positive for parainfluenza must be more than 0 and up to 999", + "number.min": "The number of service users that have tested positive for parainfluenza must be more than 0 and up to 999" } } } @@ -879,8 +879,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for parainfluenza", - "number.max": "The number of staff that have tested positive for parainfluenza must be 999 or fewer", - "number.min": "The number of staff that have tested positive for parainfluenza must be 999 or fewer" + "number.max": "The number of staff that have tested positive for parainfluenza must be more than 0 and up to 999", + "number.min": "The number of staff that have tested positive for parainfluenza must be more than 0 and up to 999" } } } @@ -932,8 +932,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for Respiratory Syncytial Virus (RSV)", - "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer", - "number.min": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer" + "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999", + "number.min": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999" } } } @@ -981,8 +981,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for Respiratory Syncytial Virus (RSV)", - "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer", - "number.min": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be 999 or fewer" + "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999", + "number.min": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999" } } } @@ -1026,8 +1026,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for rhinovirus", - "number.max": "The number of service users that have tested positive for rhinovirus must be 999 or fewer", - "number.min": "The number of service users that have tested positive for rhinovirus must be 999 or fewer" + "number.max": "The number of service users that have tested positive for rhinovirus must be more than 0 and up to 999", + "number.min": "The number of service users that have tested positive for rhinovirus must be more than 0 and up to 999" } } } @@ -1067,8 +1067,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for rhinovirus", - "number.max": "The number of staff that have tested positive for rhinovirus must be 999 or fewer", - "number.min": "The number of staff that have tested positive for rhinovirus must be 999 or fewer" + "number.max": "The number of staff that have tested positive for rhinovirus must be more than 0 and up to 999", + "number.min": "The number of staff that have tested positive for rhinovirus must be more than 0 and up to 999" } } } @@ -1104,8 +1104,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for an other acute respiratory infection", - "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be 999 or fewer", - "number.min": "The number of service users that have tested positive for an other acute respiratory infection must be 999 or fewer" + "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be more than 0 and up to 999", + "number.min": "The number of service users that have tested positive for an other acute respiratory infection must be more than 0 and up to 999" } } } @@ -1137,8 +1137,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for an other acute respiratory infection", - "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be 999 or fewer", - "number.min": "The number of staff that have tested positive for an other acute respiratory infection must be 999 or fewer" + "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be more than 0 and up to 999", + "number.min": "The number of staff that have tested positive for an other acute respiratory infection must be more than 0 and up to 999" } } } @@ -1269,8 +1269,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" } } }, @@ -1286,8 +1286,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer", - "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" } } }, @@ -1299,8 +1299,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer", - "number.min": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer" + "number.max": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999" } }, "schema": { @@ -2265,8 +2265,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" } }, "schema": { @@ -2705,8 +2705,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" } }, "schema": { From 697956aea4a9633cee437f57464ff45e12e04e8d Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 14:24:32 +0000 Subject: [PATCH 149/403] fix number err msg --- runner/src/server/forms/ReportAnOutbreak.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 21e2cb5177..39fc7a3b4c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1067,8 +1067,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", - "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" } } }, @@ -1084,8 +1084,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer", - "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" } } }, @@ -1097,8 +1097,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer", - "number.min": "The number of service users that have been tested for flu and had a negative test result must be 999 or fewer" + "number.max": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999" } }, "schema": { @@ -1138,8 +1138,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be 999 or fewer" + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" } } }, @@ -1155,8 +1155,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer", - "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be 999 or fewer" + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" } } }, @@ -1168,8 +1168,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer", - "number.min": "The number of staff that have been tested for flu and had a negative test result must be 999 or fewer" + "number.max": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999" } }, "schema": { @@ -2177,8 +2177,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" } }, "schema": { @@ -2605,8 +2605,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be 999 or fewer" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" } }, "schema": { From 661a45129f2cf025ec422b5bdeb29a439b59b62f Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 15:58:03 +0000 Subject: [PATCH 150/403] CAR-578 --- model/src/components/types.ts | 3 ++ .../engine/components/EmailAddressField.ts | 32 ++++++++++++++----- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/model/src/components/types.ts b/model/src/components/types.ts index 6c55aff01b..740aaa2adb 100644 --- a/model/src/components/types.ts +++ b/model/src/components/types.ts @@ -178,6 +178,9 @@ export interface TextFieldComponent extends TextFieldBase { export interface EmailAddressFieldComponent extends TextFieldBase { type: "EmailAddressField"; + options: TextFieldBase["options"] & { + customValidationMessage?: string; + }; } export interface NumberFieldComponent extends NumberFieldBase { diff --git a/runner/src/server/plugins/engine/components/EmailAddressField.ts b/runner/src/server/plugins/engine/components/EmailAddressField.ts index 159bfaae85..1a5158f4ca 100644 --- a/runner/src/server/plugins/engine/components/EmailAddressField.ts +++ b/runner/src/server/plugins/engine/components/EmailAddressField.ts @@ -3,25 +3,41 @@ import { InputFieldsComponentsDef } from "@xgovformbuilder/model"; import { FormModel } from "../models"; import { FormData, FormSubmissionErrors } from "../types"; import { FormComponent } from "./FormComponent"; -import { - getStateSchemaKeys, - getFormSchemaKeys, - addClassOptionIfNone, -} from "./helpers"; +import { addClassOptionIfNone } from "./helpers"; +import joi, { Schema } from "joi"; export class EmailAddressField extends FormComponent { + formSchema; + stateSchema; + constructor(def: InputFieldsComponentsDef, model: FormModel) { super(def, model); this.schema["email"] = true; + addClassOptionIfNone(this.options, "govuk-input--width-20"); + + // Define Joi schema for email validation + let emailSchema = joi.string(); + + if (this.schema.regex) { + const pattern = new RegExp(this.schema.regex); + emailSchema = emailSchema.pattern(pattern); + } + + if (this.options.customValidationMessages) { + emailSchema = emailSchema.messages(this.options.customValidationMessages); + } + + this.formSchema = emailSchema; + this.stateSchema = emailSchema; } getFormSchemaKeys() { - return getFormSchemaKeys(this.name, "string", this); + return { [this.name]: this.formSchema as Schema }; } getStateSchemaKeys() { - return getStateSchemaKeys(this.name, "string", this); + return { [this.name]: this.stateSchema as Schema }; } getViewModel(formData: FormData, errors: FormSubmissionErrors) { @@ -34,7 +50,7 @@ export class EmailAddressField extends FormComponent { }; } - viewModel.type = "email"; + viewModel.type = "text"; viewModel.autocomplete = "email"; return viewModel; From 47466a144bf50fe519175482d24d7fef3f4cf721 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 16:09:34 +0000 Subject: [PATCH 151/403] CAR-589 --- runner/src/server/forms/ReportAnOutbreak.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..b5859a4964 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -52,9 +52,16 @@ "type": "TextField", "name": "OtherAdultSocialCare", "title": "Enter your setting type", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter the type of adult social care you provide" + } + }, "schema": {} } + }, + "customValidationMessages": { + "any.required": "Select the type of adult social care you provide" } }, "type": "RadiosField", From abf7130c9084b489f0ceb6a5ca0d42a9a76e498c Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 16:22:25 +0000 Subject: [PATCH 152/403] CAR-590 --- runner/src/server/forms/ReportAnOutbreak.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b5859a4964..69cf5cc923 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -121,7 +121,10 @@ { "name": "WhichARI", "options": { - "summaryTitle": "Infection" + "summaryTitle": "Infection", + "customValidationMessages": { + "any.required": "Select which acute respiratory infections you have a positive test result for" + } }, "type": "CheckboxesField", "nameHasError": false, From 3f2b360c0c9fa282ac77d9205092156eaa292ce6 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 16:27:11 +0000 Subject: [PATCH 153/403] CAR-591 --- runner/src/server/forms/ReportAnOutbreak.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 69cf5cc923..ff0b4b96e4 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -429,7 +429,10 @@ { "name": "ARIInfectionType", "options": { - "summaryTitle": "Infection type" + "summaryTitle": "Infection type", + "customValidationMessages": { + "any.required": "Select the infection you are reporting" + } }, "type": "CheckboxesField", "nameHasError": false, From b704d6537bf5d71a1bc1c2e4aa2f5ec5d8103679 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 16:35:32 +0000 Subject: [PATCH 154/403] CAR-592 --- runner/src/server/forms/ReportAnOutbreak.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index ff0b4b96e4..e51b649ff0 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1646,7 +1646,10 @@ "hint": "You can select more than one option", "list": "ServiceOrStaffMultiple", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select if your service users or staff have an acute respiratory infection" + } } } ], From e110aa0f2f491617fe5943f73412be3e4ac37243 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 16:43:48 +0000 Subject: [PATCH 155/403] CAR-593 --- runner/src/server/forms/ReportAnOutbreak.json | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index e51b649ff0..db47f94a9c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2227,10 +2227,16 @@ "title": "How many service users have COVID-19 confirmed by a positive test?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { - "required": true + "required": true, + "customValidationMessages": { + "number.base": "Enter the number of service users that have COVID-19 confirmed by a positive test", + "number.max": "The number of service users that have COVID-19 confirmed by a positive test must be more than 0 and up to 999", + "number.min": "The number of service users that have COVID-19 confirmed by a positive test must be more than 0 and up to 999" + } }, "schema": { - "min": 0 + "min": 0, + "max": 999 } }, { @@ -2239,10 +2245,16 @@ "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { - "required": true + "required": true, + "customValidationMessages": { + "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + } }, "schema": { - "min": 0 + "min": 0, + "max": 999 } } ], From 8f365df2445b93a0f8f8b751567e88d6786773c7 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 16:46:50 +0000 Subject: [PATCH 156/403] CAR-594 --- runner/src/server/forms/ReportAnOutbreak.json | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index db47f94a9c..82240ad10c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2339,10 +2339,16 @@ "title": "How many staff have COVID-19 confirmed by a positive test?", "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { - "required": true + "required": true, + "customValidationMessages": { + "number.base": "Enter the number of staff that have COVID-19 confirmed by a positive test", + "number.max": "The number of staff that have COVID-19 confirmed by a positive test must be more than 0 and up to 999", + "number.min": "The number of staff that have COVID-19 confirmed by a positive test must be more than 0 and up to 999" + } }, "schema": { - "min": 0 + "min": 0, + "max": 999 } }, { @@ -2351,10 +2357,16 @@ "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { - "required": true + "required": true, + "customValidationMessages": { + "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + } }, "schema": { - "min": 0 + "min": 0, + "max": 999 } } ], From a0db659338593acb326d5acfbc827b3966d37b0c Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 17:03:52 +0000 Subject: [PATCH 157/403] CAR-599 --- runner/src/server/forms/ReportAnOutbreak.json | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..331d4d2cb8 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2527,7 +2527,10 @@ "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", "list": "CaseNumbers", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select the number of service users you have called the GP about because of the severity of illness" + } } }, { @@ -2536,7 +2539,10 @@ "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select the number of service users or staff that have been hospitalised because of an acute respiratory infection" + } } }, { @@ -2545,7 +2551,10 @@ "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select the number of service users or staff that have been died because of an acute respiratory infection" + } } } ], From 1c161f24e99e72971c0b3c9ffd00d7a335ec2c83 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 17 Mar 2025 17:08:23 +0000 Subject: [PATCH 158/403] CAR-600 --- runner/src/server/forms/ReportAnOutbreak.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 331d4d2cb8..d6357bc990 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1460,7 +1460,11 @@ "components": [ { "name": "SingleCaseOfFluSeverityCalledGP", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select yes if you have called the GP because of the severity of illness" + } + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, @@ -1471,7 +1475,11 @@ }, { "name": "SingleCaseOfFluSeverityHospitalised", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select yes if the person has been hospitalised with the flu" + } + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, @@ -1482,7 +1490,11 @@ }, { "name": "SingleCaseOfFluSeverityDeath", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select yes if the person has died with flu" + } + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, From 09b86160043ebfa6fbf68d9f3c8c11f046cc9fd0 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 09:29:02 +0000 Subject: [PATCH 159/403] CAR-603 --- runner/src/server/forms/ReportAnOutbreak.json | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d6357bc990..b017ace07d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1517,13 +1517,17 @@ { "name": "ServiceUsersCovid19Vaccination", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users vaccinated for COVID-19 must be more than 0 and up to 999", + "number.min": "The number of service users vaccinated for COVID-19 must be more than 0 and up to 999" + } }, "type": "NumberField", "nameHasError": false, "schema": { "min": 0, - "max": 200 + "max": 999 }, "title": "Service users: how many are up to date with the current COVID-19 vaccination schedule?", "values": { @@ -1533,13 +1537,17 @@ { "name": "ServiceUsersFluVaccination", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users vaccinated for flu must be more than 0 and up to 999", + "number.min": "The number of service users vaccinated for flu must be more than 0 and up to 999" + } }, "type": "NumberField", "nameHasError": false, "schema": { "min": 0, - "max": 200 + "max": 999 }, "title": "Service users: how many have had the flu vaccine for this current winter season?", "values": { @@ -1549,13 +1557,17 @@ { "name": "ServiceUsersRSVVaccination", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users vaccinated for RSV must be more than 0 and up to 999", + "number.min": "The number of service users vaccinated for RSV must be more than 0 and up to 999" + } }, "type": "NumberField", "nameHasError": false, "schema": { "min": 0, - "max": 200 + "max": 999 }, "title": "Service users: how many have had the respiratory syncytial virus (RSV) vaccine?", "values": { @@ -1565,13 +1577,17 @@ { "name": "StaffCovid19Vaccination", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff vaccinated for COVID-19 must be more than 0 and up to 999", + "number.min": "The number of staff vaccinated for COVID-19 must be more than 0 and up to 999" + } }, "type": "NumberField", "nameHasError": false, "schema": { "min": 0, - "max": 200 + "max": 999 }, "title": "Staff: how many are up to date with the current COVID-19 vaccination schedule?", "values": { @@ -1581,13 +1597,17 @@ { "name": "StaffFluVaccination", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff vaccinated for flu must be more than 0 and up to 999", + "number.min": "The number of staff vaccinated for flu must be more than 0 and up to 999" + } }, "type": "NumberField", "nameHasError": false, "schema": { "min": 0, - "max": 200 + "max": 999 }, "title": "Staff: how many have had the flu vaccine for this current winter season?", "values": { From 99b72d21d38e1c10a883a8f11591c15be83af701 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 09:49:50 +0000 Subject: [PATCH 160/403] updated email page --- runner/src/server/forms/magic-link.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index 12a0d7d4cd..282a9d5ec0 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -19,7 +19,7 @@ "name": "EmailIntro", "options": {}, "type": "Para", - "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.

    If you're returning to a report that you started in the last 3 days, use the same email address.", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.
    ", "schema": {} }, { From 3d0e8dae69162fd348cf17e37a9ad5eca4bd3af0 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 10:19:59 +0000 Subject: [PATCH 161/403] CAR-826 --- runner/src/server/forms/ReportAnOutbreak.json | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b017ace07d..a823f4e497 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1308,11 +1308,17 @@ "components": [ { "name": "ServiceUsersFluSwabTest", - "options": {}, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have flu confirmed by a positive swab test", + "number.max": "The number of service users that have flu confirmed by a positive swab test must be more than 0 and up to 999", + "number.min": "The number of service users that have flu confirmed by a positive swab test must be more than 0 and up to 999" + } + }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many service users have flu confirmed by a positive swab test?", @@ -1321,12 +1327,16 @@ { "name": "ServiceUsersChestInfection", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users that have been diagnosed with a chest infection by a GP must be more than 0 and up to 999", + "number.min": "The number of service users that have been diagnosed with a chest infection by a GP must be more than 0 and up to 999" + } }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many service users have been diagnosed with a chest infection by a GP?", @@ -1334,11 +1344,17 @@ }, { "name": "ServiceUsersSymptomsNotTested", - "options": {}, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + } + }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", @@ -1347,12 +1363,16 @@ { "name": "ServiceUsersChestInfectionCovid19", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + } }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many service users have been tested for COVID-19?", From 43ba1376a3588557d833016ba4248ed99b884965 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 10:32:41 +0000 Subject: [PATCH 162/403] CAR-827 --- runner/src/server/forms/ReportAnOutbreak.json | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index a823f4e497..4fa5789b39 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1400,11 +1400,17 @@ { "name": "StaffFluSwabTest", - "options": {}, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that have flu confirmed by a positive swab test", + "number.max": "The number of staff that have flu confirmed by a positive swab test must be more than 0 and up to 999", + "number.min": "The number of staff that have flu confirmed by a positive swab test must be more than 0 and up to 999" + } + }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many staff have flu confirmed by a positive swab test?", @@ -1413,12 +1419,16 @@ { "name": "StaffSymptomsNotTested", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + } }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", @@ -1427,12 +1437,16 @@ { "name": "StaffChestInfectionCovid19", "options": { - "required": false + "required": false, + "customValidationMessages": { + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + } }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many staff have been tested for COVID-19?", From bc44c0afcce6cbf106b51548db20318b8ee0253b Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 14:56:22 +0000 Subject: [PATCH 163/403] CAR-604 --- runner/src/server/forms/ReportAnOutbreak.json | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4869aed926..0bd309819e 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2063,7 +2063,11 @@ "components": [ { "name": "IPCPractices", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select how often you monitor staff infection prevention and control practices" + } + }, "type": "RadiosField", "nameHasError": false, "title": "How often do you monitor staff infection prevention and control practices?", @@ -2075,7 +2079,11 @@ }, { "name": "Issues", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the issues you currently need support with" + } + }, "type": "CheckboxesField", "nameHasError": false, "title": "What issues do you currently need support with?", @@ -2086,8 +2094,18 @@ } }, { - "name": "AGPs", + "name": "SYlpIV", "options": {}, + "type": "Html", + "content": "" + }, + { + "name": "AGPs", + "options": { + "customValidationMessages": { + "any.required": "Select yes if your setting undertakes aerosol generating procedures (AGPs)" + } + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, From 1c98a6da9eb6ff42f560fd25d397b6a07564f7b7 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 14:57:11 +0000 Subject: [PATCH 164/403] CAR-605 --- runner/src/server/forms/ReportAnOutbreak.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 0bd309819e..cc60ac9b94 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2688,7 +2688,11 @@ "components": [ { "name": "FFP3Masks", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select if staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks" + } + }, "type": "RadiosField", "nameHasError": false, "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", From e5efaf20918030455ee073d46473694da8ae5563 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 14:58:04 +0000 Subject: [PATCH 165/403] CAR-606 --- runner/src/server/forms/ReportAnOutbreak.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index cc60ac9b94..f97e379995 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2714,7 +2714,11 @@ "components": [ { "name": "AgencyStaff", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select yes if you use agency staff or share staff with other care settings" + } + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, From d0de9c1cb1e1842ddbd70aff7b0380fde88a418c Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 14:58:43 +0000 Subject: [PATCH 166/403] CAR-607 --- runner/src/server/forms/ReportAnOutbreak.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index f97e379995..fd09818bd0 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2744,7 +2744,11 @@ "components": [ { "name": "AdditionalStaff", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the number of additional agency staff or staff from other care settings you have used during this outbreak" + } + }, "type": "RadiosField", "nameHasError": false, "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", From 80b193c1a93c07a9b6a41fa4446d5441c1dc860d Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 15:06:51 +0000 Subject: [PATCH 167/403] CAR-608 --- runner/src/server/forms/ReportAnOutbreak.json | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index fd09818bd0..5b5c3869e4 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2999,7 +2999,11 @@ "components": [ { "name": "ServiceUsersTypes", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the options that best describe the majority of your service users" + } + }, "type": "CheckboxesField", "nameHasError": false, "title": "Select the options that best describe the majority of your service users", @@ -3011,12 +3015,18 @@ }, { "name": "ServiceUsersCurrentlyLive", - "options": {}, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of service users that currently live in your care setting or use your service", + "number.max": "The number of service users that currently live in your care setting or use your service must be more than 0 and up to 999", + "number.min": "The number of service users that currently live in your care setting or use your service must be more than 0 and up to 999" + } + }, "type": "NumberField", "nameHasError": false, "schema": { "min": 0, - "max": 200 + "max": 999 }, "title": "How many service users currently live in your care setting or use your service?", "hint": "Include those who are currently in hospital or on visits out", @@ -3024,22 +3034,34 @@ }, { "name": "StaffNumber", - "options": {}, + "options": { + "customValidationMessages": { + "number.base": "Enter the number of staff that currently work in your care setting or service", + "number.max": "The number of staff that currently work in your care setting or service must be more than 0 and up to 999", + "number.min": "The number of staff that currently work in your care setting or service must be more than 0 and up to 999" + } + }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many staff currently work in your care setting or service?" }, { "name": "EmptyBeds", - "options": { "required": false }, + "options": { + "required": false, + "customValidationMessages": { + "number.max": "The number of empty beds that you have in your care setting must be more than 0 and up to 999", + "number.min": "The number of empty beds that you have in your care setting must be more than 0 and up to 999" + } + }, "type": "NumberField", "schema": { "min": 0, - "max": 200 + "max": 999 }, "nameHasError": false, "title": "How many empty beds do you have in your care setting?", From ec230fc62f7a6be4d25c69c8a4f889c394876e4f Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 15:08:26 +0000 Subject: [PATCH 168/403] CAR-638 --- runner/src/server/forms/ReportAnOutbreak.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 5b5c3869e4..82aa63ced6 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -82,7 +82,10 @@ { "name": "PositiveARI", "options": { - "summaryTitle": "Positive test result" + "summaryTitle": "Positive test result", + "customValidationMessages": { + "any.required": "Select yes if you have any positive test results for an acute respiratory infection" + } }, "type": "RadiosField", "list": "YesNo", From 9dc3aeeb3ed5f2dc044a0b0ed646f8b6a04bba1b Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 15:12:07 +0000 Subject: [PATCH 169/403] CAR-640 --- runner/src/server/forms/ReportAnOutbreak.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 82aa63ced6..e936c4b8a5 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -223,7 +223,10 @@ { "name": "TwoOrMoreCovid5days", "options": { - "summaryTitle": "Symptoms started within 5 days of each other" + "summaryTitle": "Symptoms started within 5 days of each other", + "customValidationMessages": { + "any.required": "Select yes if symptoms in 2 or more cases started within 5 days of each other" + } }, "type": "RadiosField", "nameHasError": false, @@ -236,7 +239,10 @@ { "name": "TwoOrMoreCovidSpread", "options": { - "summaryTitle": "The cases are linked by spread" + "summaryTitle": "The cases are linked by spread", + "customValidationMessages": { + "any.required": "Select yes if it is possible that at least 2 of the cases are linked by spread" + } }, "type": "RadiosField", "nameHasError": false, From a24fd06344a9aac552c389f210dfec5a9cccd248 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 15:12:58 +0000 Subject: [PATCH 170/403] CAR-641 --- runner/src/server/forms/ReportAnOutbreak.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index e936c4b8a5..a88b60dba6 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -280,7 +280,10 @@ { "name": "TwoOrMoreARI", "options": { - "summaryTitle": "2 or more cases" + "summaryTitle": "2 or more cases", + "customValidationMessages": { + "any.required": "Select yes if you are reporting 2 or more cases of an acute respiratory infection" + } }, "type": "RadiosField", "list": "YesNo", From 9eb8a60f3910283e02233f39cff2b83d3b2acc2b Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 16:47:08 +0000 Subject: [PATCH 171/403] final err msg for number min max --- runner/src/server/forms/ReportAnOutbreak.json | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 6568682f18..fed8be89b5 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -466,8 +466,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } } }, @@ -483,8 +483,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999" } } }, @@ -496,8 +496,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999", + "number.min": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999" } }, "schema": { @@ -554,8 +554,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for adenovirus", - "number.max": "The number of service users that have tested positive for adenovirus must be more than 0 and up to 999", - "number.min": "The number of service users that have tested positive for adenovirus must be more than 0 and up to 999" + "number.max": "The number of service users that have tested positive for adenovirus must be between 0 and 999", + "number.min": "The number of service users that have tested positive for adenovirus must be between 0 and 999" } } } @@ -627,8 +627,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for adenovirus", - "number.max": "The number of staff that have tested positive for adenovirus must be more than 0 and up to 999", - "number.min": "The number of staff that have tested positive for adenovirus must be more than 0 and up to 999" + "number.max": "The number of staff that have tested positive for adenovirus must be between 0 and 999", + "number.min": "The number of staff that have tested positive for adenovirus must be between 0 and 999" } } } @@ -696,8 +696,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for human Metapneumovirus (hMPV)", - "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999", - "number.min": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999" + "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999", + "number.min": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999" } } } @@ -761,8 +761,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for human Metapneumovirus (hMPV)", - "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999", - "number.min": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be more than 0 and up to 999" + "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999", + "number.min": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999" } } } @@ -822,8 +822,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for parainfluenza", - "number.max": "The number of service users that have tested positive for parainfluenza must be more than 0 and up to 999", - "number.min": "The number of service users that have tested positive for parainfluenza must be more than 0 and up to 999" + "number.max": "The number of service users that have tested positive for parainfluenza must be between 0 and 999", + "number.min": "The number of service users that have tested positive for parainfluenza must be between 0 and 999" } } } @@ -879,8 +879,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for parainfluenza", - "number.max": "The number of staff that have tested positive for parainfluenza must be more than 0 and up to 999", - "number.min": "The number of staff that have tested positive for parainfluenza must be more than 0 and up to 999" + "number.max": "The number of staff that have tested positive for parainfluenza must be between 0 and 999", + "number.min": "The number of staff that have tested positive for parainfluenza must be between 0 and 999" } } } @@ -932,8 +932,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for Respiratory Syncytial Virus (RSV)", - "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999", - "number.min": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999" + "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999", + "number.min": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999" } } } @@ -981,8 +981,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for Respiratory Syncytial Virus (RSV)", - "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999", - "number.min": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be more than 0 and up to 999" + "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999", + "number.min": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999" } } } @@ -1026,8 +1026,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for rhinovirus", - "number.max": "The number of service users that have tested positive for rhinovirus must be more than 0 and up to 999", - "number.min": "The number of service users that have tested positive for rhinovirus must be more than 0 and up to 999" + "number.max": "The number of service users that have tested positive for rhinovirus must be between 0 and 999", + "number.min": "The number of service users that have tested positive for rhinovirus must be between 0 and 999" } } } @@ -1067,8 +1067,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for rhinovirus", - "number.max": "The number of staff that have tested positive for rhinovirus must be more than 0 and up to 999", - "number.min": "The number of staff that have tested positive for rhinovirus must be more than 0 and up to 999" + "number.max": "The number of staff that have tested positive for rhinovirus must be between 0 and 999", + "number.min": "The number of staff that have tested positive for rhinovirus must be between 0 and 999" } } } @@ -1104,8 +1104,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for an other acute respiratory infection", - "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be more than 0 and up to 999", - "number.min": "The number of service users that have tested positive for an other acute respiratory infection must be more than 0 and up to 999" + "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be between 0 and 999", + "number.min": "The number of service users that have tested positive for an other acute respiratory infection must be between 0 and 999" } } } @@ -1137,8 +1137,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for an other acute respiratory infection", - "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be more than 0 and up to 999", - "number.min": "The number of staff that have tested positive for an other acute respiratory infection must be more than 0 and up to 999" + "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be between 0 and 999", + "number.min": "The number of staff that have tested positive for an other acute respiratory infection must be between 0 and 999" } } } @@ -1269,8 +1269,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } } }, @@ -1286,8 +1286,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" } } }, @@ -1299,8 +1299,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999" } }, "schema": { @@ -2265,8 +2265,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999" } }, "schema": { @@ -2705,8 +2705,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999" } }, "schema": { From 450f29299d7ae905faeccd2fc724d6700789f630 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 16:48:52 +0000 Subject: [PATCH 172/403] final err msg for number min max --- runner/src/server/forms/ReportAnOutbreak.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 39fc7a3b4c..ef521264f2 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1067,8 +1067,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } } }, @@ -1084,8 +1084,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999" } } }, @@ -1097,8 +1097,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of service users that have been tested for flu and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999", + "number.min": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999" } }, "schema": { @@ -1138,8 +1138,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } } }, @@ -1155,8 +1155,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" } } }, @@ -1168,8 +1168,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of staff that have been tested for flu and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999" } }, "schema": { @@ -2177,8 +2177,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999" } }, "schema": { @@ -2605,8 +2605,8 @@ "options": { "required": false, "customValidationMessages": { - "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999", - "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be more than 0 and up to 999" + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999" } }, "schema": { From bb8c7d0bc537e79953da0387eacf5268ac2619b5 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 16:49:47 +0000 Subject: [PATCH 173/403] final err msg for number min max --- runner/src/server/forms/ReportAnOutbreak.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 82240ad10c..5576f45939 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2230,8 +2230,8 @@ "required": true, "customValidationMessages": { "number.base": "Enter the number of service users that have COVID-19 confirmed by a positive test", - "number.max": "The number of service users that have COVID-19 confirmed by a positive test must be more than 0 and up to 999", - "number.min": "The number of service users that have COVID-19 confirmed by a positive test must be more than 0 and up to 999" + "number.max": "The number of service users that have COVID-19 confirmed by a positive test must be between 0 and 999", + "number.min": "The number of service users that have COVID-19 confirmed by a positive test must be between 0 and 999" } }, "schema": { @@ -2248,8 +2248,8 @@ "required": true, "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } }, "schema": { @@ -2342,8 +2342,8 @@ "required": true, "customValidationMessages": { "number.base": "Enter the number of staff that have COVID-19 confirmed by a positive test", - "number.max": "The number of staff that have COVID-19 confirmed by a positive test must be more than 0 and up to 999", - "number.min": "The number of staff that have COVID-19 confirmed by a positive test must be more than 0 and up to 999" + "number.max": "The number of staff that have COVID-19 confirmed by a positive test must be between 0 and 999", + "number.min": "The number of staff that have COVID-19 confirmed by a positive test must be between 0 and 999" } }, "schema": { @@ -2360,8 +2360,8 @@ "required": true, "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } }, "schema": { From 0a5fcf272c5d43b1ce90229e675dbabe5f783b35 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 18 Mar 2025 16:51:30 +0000 Subject: [PATCH 174/403] final err msg for number min max --- runner/src/server/forms/ReportAnOutbreak.json | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4fa5789b39..bef4fbb5de 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1311,8 +1311,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have flu confirmed by a positive swab test", - "number.max": "The number of service users that have flu confirmed by a positive swab test must be more than 0 and up to 999", - "number.min": "The number of service users that have flu confirmed by a positive swab test must be more than 0 and up to 999" + "number.max": "The number of service users that have flu confirmed by a positive swab test must be between 0 and 999", + "number.min": "The number of service users that have flu confirmed by a positive swab test must be between 0 and 999" } }, "type": "NumberField", @@ -1329,8 +1329,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been diagnosed with a chest infection by a GP must be more than 0 and up to 999", - "number.min": "The number of service users that have been diagnosed with a chest infection by a GP must be more than 0 and up to 999" + "number.max": "The number of service users that have been diagnosed with a chest infection by a GP must be between 0 and 999", + "number.min": "The number of service users that have been diagnosed with a chest infection by a GP must be between 0 and 999" } }, "type": "NumberField", @@ -1347,8 +1347,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } }, "type": "NumberField", @@ -1365,8 +1365,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999" } }, "type": "NumberField", @@ -1403,8 +1403,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have flu confirmed by a positive swab test", - "number.max": "The number of staff that have flu confirmed by a positive swab test must be more than 0 and up to 999", - "number.min": "The number of staff that have flu confirmed by a positive swab test must be more than 0 and up to 999" + "number.max": "The number of staff that have flu confirmed by a positive swab test must be between 0 and 999", + "number.min": "The number of staff that have flu confirmed by a positive swab test must be between 0 and 999" } }, "type": "NumberField", @@ -1421,8 +1421,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be more than 0 and up to 999" + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" } }, "type": "NumberField", @@ -1439,8 +1439,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999", - "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be more than 0 and up to 999" + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" } }, "type": "NumberField", @@ -1553,8 +1553,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users vaccinated for COVID-19 must be more than 0 and up to 999", - "number.min": "The number of service users vaccinated for COVID-19 must be more than 0 and up to 999" + "number.max": "The number of service users vaccinated for COVID-19 must be between 0 and 999", + "number.min": "The number of service users vaccinated for COVID-19 must be between 0 and 999" } }, "type": "NumberField", @@ -1573,8 +1573,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users vaccinated for flu must be more than 0 and up to 999", - "number.min": "The number of service users vaccinated for flu must be more than 0 and up to 999" + "number.max": "The number of service users vaccinated for flu must be between 0 and 999", + "number.min": "The number of service users vaccinated for flu must be between 0 and 999" } }, "type": "NumberField", @@ -1593,8 +1593,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of service users vaccinated for RSV must be more than 0 and up to 999", - "number.min": "The number of service users vaccinated for RSV must be more than 0 and up to 999" + "number.max": "The number of service users vaccinated for RSV must be between 0 and 999", + "number.min": "The number of service users vaccinated for RSV must be between 0 and 999" } }, "type": "NumberField", @@ -1613,8 +1613,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff vaccinated for COVID-19 must be more than 0 and up to 999", - "number.min": "The number of staff vaccinated for COVID-19 must be more than 0 and up to 999" + "number.max": "The number of staff vaccinated for COVID-19 must be between 0 and 999", + "number.min": "The number of staff vaccinated for COVID-19 must be between 0 and 999" } }, "type": "NumberField", @@ -1633,8 +1633,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of staff vaccinated for flu must be more than 0 and up to 999", - "number.min": "The number of staff vaccinated for flu must be more than 0 and up to 999" + "number.max": "The number of staff vaccinated for flu must be between 0 and 999", + "number.min": "The number of staff vaccinated for flu must be between 0 and 999" } }, "type": "NumberField", From 1c50a9fe59d4cb9aad225e047c52df79db5397d0 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Wed, 19 Mar 2025 17:13:50 +0000 Subject: [PATCH 175/403] wip --- runner/src/server/forms/ReportAnOutbreak.json | 71 ++++++++++++++++--- .../plugins/engine/components/TextField.ts | 2 +- 2 files changed, 63 insertions(+), 10 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 102b96e87b..e622aaad4d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3128,7 +3128,15 @@ }, { "name": "MainContactName", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter a main contact's full name", + "string.pattern.base": "Main contact's name must be 99 characters or less" + } + }, + "schema": { + "regex": "^.{0,99}$" + }, "type": "TextField", "nameHasError": false, "title": "Full name", @@ -3139,7 +3147,13 @@ { "name": "MainContactJobTitle", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Main contact's job title must be 99 characters or less" + } + }, + "schema": { + "regex": "^.{0,99}$" }, "type": "TextField", "nameHasError": false, @@ -3151,7 +3165,15 @@ }, { "name": "MainContactPhoneNumber", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter a main contact's phone number", + "string.pattern.base": "Enter a main contact's phone number, like 01632 960 001 or 07700 900 982" + } + }, + "schema": { + "regex": "^(0\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3}|\\+\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3})$" + }, "type": "TextField", "nameHasError": false, "title": "Phone number", @@ -3162,9 +3184,16 @@ { "name": "MainContactEmailAddress", "options": { - "exposeToContext": true + "exposeToContext": true, + "customValidationMessages": { + "string.empty": "Enter a main contact's email address", + "string.pattern.base": "Enter a main contact's email address in the correct format, like name@example.com" + } }, - "type": "TextField", + "schema": { + "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" + }, + "type": "EmailAddressField", "nameHasError": false, "title": "Email address", "values": { @@ -3183,7 +3212,13 @@ { "name": "AltContactName", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Additional contact's name must be 99 characters or less" + } + }, + "schema": { + "regex": "^.{0,99}$" }, "type": "TextField", "nameHasError": false, @@ -3195,7 +3230,13 @@ { "name": "AltContactJobTitle", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Additional contact's job title must be 99 characters or less" + } + }, + "schema": { + "regex": "^.{0,99}$" }, "type": "TextField", "nameHasError": false, @@ -3208,7 +3249,13 @@ { "name": "AltContactPhoneNumber", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an additional contact's phone number, like 01632 960 001 or 07700 900 982" + } + }, + "schema": { + "regex": "^(0\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3}|\\+\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3})$" }, "type": "TextField", "nameHasError": false, @@ -3220,7 +3267,13 @@ { "name": "AltContactEmailAddress", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an additional contact's email address in the correct format, like name@example.com" + } + }, + "schema": { + "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" }, "type": "TextField", "nameHasError": false, diff --git a/runner/src/server/plugins/engine/components/TextField.ts b/runner/src/server/plugins/engine/components/TextField.ts index 2acf6d6a34..bc0e1067dc 100644 --- a/runner/src/server/plugins/engine/components/TextField.ts +++ b/runner/src/server/plugins/engine/components/TextField.ts @@ -19,7 +19,7 @@ export class TextField extends FormComponent { addClassOptionIfNone(this.options, "govuk-input--width-20"); - let componentSchema = joi.string().required(); + let componentSchema = joi.string(); if (options.required === false) { componentSchema = componentSchema.optional().allow("").allow(null); } From 1143a8235fd231690b75c5ec4c647d244153ef51 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 20 Mar 2025 11:56:48 +0000 Subject: [PATCH 176/403] Magic link content fixes (#302) * Add feedback form link to magic link pages * confirmation page content fix --- runner/src/server/forms/magic-link.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index 282a9d5ec0..40ca1108b8 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -149,7 +149,7 @@ "confirmationPage": { "customText": { "hidePanel": true, - "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to Report an outbreak.

    You can change the email address if it’s not correct or if you’d like to use a different email.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email.

    Request a new link" + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" } } }, @@ -177,7 +177,10 @@ } ], "jwtKey": "${jwtKey}", - + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, "version": 2, "conditions": [] } From c6f49e67f06d7d241dafd30b3c8d76ff75bf1296 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Thu, 20 Mar 2025 15:05:12 +0000 Subject: [PATCH 177/403] CAR-604 update --- model/src/components/types.ts | 2 ++ runner/src/server/forms/ReportAnOutbreak.json | 13 +++----- .../engine/components/CheckboxesField.ts | 32 +++++++++++++------ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/model/src/components/types.ts b/model/src/components/types.ts index 6c55aff01b..cfd84e81e8 100644 --- a/model/src/components/types.ts +++ b/model/src/components/types.ts @@ -134,6 +134,8 @@ interface ListFieldBase { disableChangingFromSummary?: boolean; customValidationMessages?: Record; summaryTitle?: string; + divider?: boolean; + finalValue?: string; }; list: string; schema: {}; diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index a88b60dba6..1cc78f675f 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2093,8 +2093,11 @@ "name": "Issues", "options": { "customValidationMessages": { - "any.required": "Select the issues you currently need support with" - } + "any.required": "Select the issues you currently need support with", + "any.invalid": "Select the issues you currently need support with, or select ‘no issues’" + }, + "divider": true, + "finalValue": "No issues" }, "type": "CheckboxesField", "nameHasError": false, @@ -2105,12 +2108,6 @@ "type": "listRef" } }, - { - "name": "SYlpIV", - "options": {}, - "type": "Html", - "content": "" - }, { "name": "AGPs", "options": { diff --git a/runner/src/server/plugins/engine/components/CheckboxesField.ts b/runner/src/server/plugins/engine/components/CheckboxesField.ts index 607d9f085e..8298f139a4 100644 --- a/runner/src/server/plugins/engine/components/CheckboxesField.ts +++ b/runner/src/server/plugins/engine/components/CheckboxesField.ts @@ -12,15 +12,20 @@ export class CheckboxesField extends SelectionControlField { let schema = joi.array().single().label(def.title.toLowerCase()); + schema = schema.items(joi[this.listType]().allow(...this.values)); + if (options.required === false) { - // null or empty string is valid for optional fields - schema = schema - .empty(null) - .items(joi[this.listType]().allow(...this.values, "")); + schema = schema.empty(null).allow(""); } else { - schema = schema - .items(joi[this.listType]().allow(...this.values)) - .required(); + schema = schema.required(); + } + + if (options.finalValue) { + schema = schema.custom((value, helpers) => + value.includes(options.finalValue) && value.length > 1 + ? helpers.error("any.invalid") + : value + ); } if (options.customValidationMessages) { @@ -51,9 +56,18 @@ export class CheckboxesField extends SelectionControlField { formDataItems = (formData[this.name] ?? "").split(","); } - viewModel.items = (viewModel.items ?? []).map((item) => ({ + // Get the original items array + const items = viewModel.items ?? []; + + // Uses https://github.com/alphagov/govuk-design-system/blob/main/src/components/checkboxes/with-none-option/index.njk + // to handle divider and "None" option + viewModel.items = (viewModel.items ?? items).map((item, index, arr) => ({ ...item, - checked: !!formDataItems.find((i) => `${item.value}` === i), + checked: formDataItems.includes(`${item.value}`), + ...(this.options.divider && + index === arr.length - 1 && { behaviour: "exclusive" }), + ...(this.options.divider && + index === arr.length - 2 && { divider: "or" }), })); return viewModel; From c0d7446a22958a4c7a61fe95d5717b9475cd3f86 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Thu, 20 Mar 2025 15:09:38 +0000 Subject: [PATCH 178/403] fix err msg number --- runner/src/server/forms/ReportAnOutbreak.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1cc78f675f..e57ea131b7 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3027,8 +3027,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of service users that currently live in your care setting or use your service", - "number.max": "The number of service users that currently live in your care setting or use your service must be more than 0 and up to 999", - "number.min": "The number of service users that currently live in your care setting or use your service must be more than 0 and up to 999" + "number.max": "The number of service users that currently live in your care setting or use your service must be between 0 and 999", + "number.min": "The number of service users that currently live in your care setting or use your service must be between 0 and 999" } }, "type": "NumberField", @@ -3046,8 +3046,8 @@ "options": { "customValidationMessages": { "number.base": "Enter the number of staff that currently work in your care setting or service", - "number.max": "The number of staff that currently work in your care setting or service must be more than 0 and up to 999", - "number.min": "The number of staff that currently work in your care setting or service must be more than 0 and up to 999" + "number.max": "The number of staff that currently work in your care setting or service must be between 0 and 999", + "number.min": "The number of staff that currently work in your care setting or service must be between 0 and 999" } }, "type": "NumberField", @@ -3063,8 +3063,8 @@ "options": { "required": false, "customValidationMessages": { - "number.max": "The number of empty beds that you have in your care setting must be more than 0 and up to 999", - "number.min": "The number of empty beds that you have in your care setting must be more than 0 and up to 999" + "number.max": "The number of empty beds that you have in your care setting must be between 0 and 999", + "number.min": "The number of empty beds that you have in your care setting must be between 0 and 999" } }, "type": "NumberField", From 703cf3ed6b5edbff88b8b471d22ff9d1010ffe9e Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 20 Mar 2025 15:13:17 +0000 Subject: [PATCH 179/403] CAR-1370 Change WhichARI checkboxes question to RadiosField (#301) * Change WhichARI checkboxes question to RadioField * Remove hint --- runner/src/server/forms/ReportAnOutbreak.json | 2336 +++-------------- 1 file changed, 315 insertions(+), 2021 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 102b96e87b..e4ba256010 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -126,25 +126,16 @@ "any.required": "Select which acute respiratory infections you have a positive test result for" } }, - "type": "CheckboxesField", + "type": "RadiosField", "nameHasError": false, "title": "Which acute respiratory infections do you have a positive test result for? ", "list": "InfectionTypes", - "hint": "You can select more than one option", "values": { "type": "listRef" } } ], "next": [ - { - "path": "/2-or-more-covid-descriptive", - "condition": "WhichARI:COVID19ANDOTHER" - }, - { - "path": "/2-or-more-covid-descriptive", - "condition": "WhichARI:COVID19ANDFLU" - }, { "path": "/2-or-more-covid", "condition": "WhichARI:COVID19" }, { "path": "/cases-of-flu", "condition": "WhichARI:FLU" }, { "path": "/2-or-more-cases-not-covid-or-flu" } @@ -258,10 +249,6 @@ } ], "next": [ - { - "path": "/2-or-more-cases-not-covid-or-flu", - "condition": "WhichARI:COVID19ANDOTHER" - }, { "path": "/do-not-need-to-report", "condition": "ReportCovid:No" @@ -313,19 +300,6 @@ }, "components": [] }, - { - "path": "/do-not-need-to-report-multiple", - "title": "You do not need to report", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true, - "customText": { - "insetText": "Based on your answers, you do not need to report these acute respiratory infections.", - "details": "

    You only need to report:

    • single cases of confirmed flu
    • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting

    Read guidance on infection prevention and control in adult social care settings.

    " - } - }, - "components": [] - }, { "path": "/2-or-more-cases-not-covid-or-flu", "title": "Are you reporting 2 or more cases of an acute respiratory infection?", @@ -347,22 +321,6 @@ } ], "next": [ - { - "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "path": "/do-not-need-to-report-multiple" - }, - { - "condition": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "path": "/do-not-need-to-report-multiple" - }, - { - "condition": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "path": "/mid-way-summary-covid-no-other-yes" - }, - { - "condition": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "path": "/mid-way-summary-covid-yes-other-no" - }, { "condition": "TwoOrMoreCasesNotCovidFlu:YES", "path": "/ari-infection-type" @@ -372,53 +330,6 @@ } ] }, - { - "path": "/mid-way-summary", - "title": "Check your answers before continuing", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true - }, - "components": [] - }, - { - "path": "/mid-way-summary-covid-yes-flu-yes-other-yes", - "title": "Check your answers before continuing", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true - }, - "components": [], - "next": [ - { - "path": "/other-ari-confirmed-cases-setting" - } - ] - }, - { - "path": "/mid-way-summary-covid-yes-other-no", - "title": "Check your answers before continuing", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true, - "customText": { - "insetText": "

    Based on your answers:

    • you need to report the cases of COVID-19
    • you do not need to report the case of other respiratory infection

    " - } - }, - "components": [] - }, - { - "path": "/mid-way-summary-covid-no-other-yes", - "title": "Check your answers before continuing", - "controller": "CheckpointSummaryPageController", - "options": { - "multiSummary": true, - "customText": { - "insetText": "

    Based on your answers:

    • you need to report the cases of COVID-19
    • you do not need to report the case of other respiratory infection

    " - } - }, - "components": [] - }, { "path": "/ari-infection-type", "title": "What infection are you reporting?", @@ -443,14 +354,6 @@ } ], "next": [ - { - "condition": "WhichARI:COVID19&FLU&OTHER", - "path": "/mid-way-summary-covid-yes-flu-yes-other-yes" - }, - { - "condition": "WhichARI:COVID19ANDOTHER", - "path": "/mid-way-summary" - }, { "condition": "WhichARI:Other", "path": "/other-ari-confirmed-cases-setting" @@ -1870,38 +1773,7 @@ "condition": "UnknownARI&ServiceOrStaff:Staff", "path": "/staff-ari-unknown" }, - { - "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-master" - }, - { - "condition": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", - "path": "/staff-master" - }, - { - "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-covid-flu" - }, - { - "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "path": "/staff-covid-flu" - }, - { - "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-covid-ari" - }, - { - "condition": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", - "path": "/staff-covid-ari" - }, - { - "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "path": "/service-users-flu-ari" - }, - { - "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", - "path": "/staff-flu-ari" - }, + { "path": "/service-users-flu", "condition": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers" @@ -1923,114 +1795,6 @@ } ] }, - { - "path": "/service-users-covid-ari", - "title": "Service users: number of cases", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersSymptomsNotTested", - "type": "NumberField", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersTestedFlu", - "type": "NumberField", - "title": "How many service users have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/staff-ari-cases", - "condition": "ARIServiceOrStaff:Both" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-covid-ari", - "title": "Staff: number of cases", - "components": [ - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffTestedFlu", - "type": "NumberField", - "title": "How many staff have been tested for flu?", - "hint": "If none, enter 0", - "options": { - "required": false - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, { "path": "/staff-ari-cases", "title": "Staff: number of cases", @@ -2110,235 +1874,63 @@ ] }, { - "path": "/service-users-master", - "title": "Service users: number of cases", + "path": "/ipc", + "title": "Infection prevention and control (IPC) and outbreak management in your setting", "components": [ { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 + "name": "IPCPractices", + "options": {}, + "type": "RadiosField", + "nameHasError": false, + "title": "How often do you monitor staff infection prevention and control practices?", + "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", + "list": "IPCPractices", + "values": { + "type": "listRef" } }, { - "type": "NumberField", - "name": "ServiceUsersFluSwabTest", - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} + "name": "Issues", + "options": {}, + "type": "CheckboxesField", + "nameHasError": false, + "title": "What issues do you currently need support with?", + "hint": "You can select more than one option", + "list": "Issues", + "values": { + "type": "listRef" + } }, { - "name": "ServiceUsersChestInfection", + "name": "AGPs", + "options": {}, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Does your setting undertake aerosol generating procedures (AGPs)?", + "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", + "values": { + "type": "listRef" + } + }, + { + "name": "MediaInterest", "options": { "required": false }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, + "type": "RadiosField", + "list": "YesNo", "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} + "title": "Are you aware of any media interest in this outbreak?", + "values": { + "type": "listRef" + } } ], "next": [ { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - } - ] - }, - { - "path": "/staff-master", - "title": "Staff: number of cases", - "components": [ - { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "StaffFluSwabTest", - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "schema": {} - }, - { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital
    If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital

    If none, enter 0" - } - ], - "next": [ - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/ipc", - "title": "Infection prevention and control (IPC) and outbreak management in your setting", - "components": [ - { - "name": "IPCPractices", - "options": {}, - "type": "RadiosField", - "nameHasError": false, - "title": "How often do you monitor staff infection prevention and control practices?", - "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", - "list": "IPCPractices", - "values": { - "type": "listRef" - } - }, - { - "name": "Issues", - "options": {}, - "type": "CheckboxesField", - "nameHasError": false, - "title": "What issues do you currently need support with?", - "hint": "You can select more than one option", - "list": "Issues", - "values": { - "type": "listRef" - } - }, - { - "name": "AGPs", - "options": {}, - "type": "RadiosField", - "list": "YesNo", - "nameHasError": false, - "title": "Does your setting undertake aerosol generating procedures (AGPs)?", - "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", - "values": { - "type": "listRef" - } - }, - { - "name": "MediaInterest", - "options": { - "required": false - }, - "type": "RadiosField", - "list": "YesNo", - "nameHasError": false, - "title": "Are you aware of any media interest in this outbreak?", - "values": { - "type": "listRef" - } - } - ], - "next": [ - { - "path": "/agps", - "condition": "AGPs:yes" + "path": "/agps", + "condition": "AGPs:yes" }, { "path": "/agency-staff" @@ -2492,63 +2084,6 @@ } ] }, - { - "path": "/service-users-covid-flu", - "title": "Service users: number of cases", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersCovidTestPositive", - "title": "How many service users have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "ServiceUsersFluSwabTest", - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out

    If none, enter 0", - "schema": {}, - "options": {} - } - ], - "next": [ - { - "condition": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "path": "/staff-covid-flu" - }, - { - "path": "/severity-of-illness" - } - ] - }, { "path": "/staff-covid", "title": "Staff: number of cases", @@ -2601,195 +2136,20 @@ ] }, { - "path": "/staff-covid-flu", - "title": "Staff: number of cases", + "path": "/severity-of-illness", + "title": "Severity of illness in this outbreak", "components": [ { - "type": "NumberField", - "name": "StaffCovidTestPositive", - "title": "How many staff have COVID-19 confirmed by a positive test?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "options": { - "required": true - }, - "schema": { - "min": 0 - } - }, - { - "type": "NumberField", - "name": "StaffFluSwabTest", - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "schema": {}, + "name": "severityIntro", + "type": "Para", + "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", "options": {} }, { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital
    If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital
    If none, enter 0", - "schema": {}, - "options": {} - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/service-users-flu-ari", - "title": "Service users: number of cases", - "components": [ - { - "type": "NumberField", - "name": "ServiceUsersFluSwabTest", - "title": "How many service users have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersConfirmedARI", - "type": "NumberField", - "title": "How many service users have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many service users have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0" - }, - { - "name": "ServiceUsersSymptomsNotTested", - "title": "How many service users have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital or on visits out
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "ServiceUsersTestedCovid", - "type": "NumberField", - "title": "How many service users have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": {}, - "options": { - "required": false - } - } - ], - "next": [ - { - "path": "/staff-flu-ari", - "condition": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff" - }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-flu-ari", - "title": "Staff: number of cases", - "components": [ - { - "type": "NumberField", - "name": "StaffFluSwabTest", - "title": "How many staff have flu confirmed by a positive swab test?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffConfirmedARI", - "type": "NumberField", - "title": "How many staff have tested positive for adenovirus?", - "hint": "Include those who are currently in hospital
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffChestInfection", - "options": { - "required": false - }, - "type": "NumberField", - "schema": { - "min": 0, - "max": 200 - }, - "nameHasError": false, - "title": "How many staff have been diagnosed with a chest infection by a GP?", - "hint": "Include those who are currently in hospital
    If none, enter 0" - }, - { - "name": "StaffSymptomsNotTested", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "type": "NumberField", - "hint": "Do not include cases that have been confirmed by a test as flu or diagnosed by a GP as a chest infection

    Among elderly people this may include people who have a sudden onset of acute respiratory symptoms, fever, or sudden mental or physical deterioration without any other known cause

    Include those who are currently in hospital
    If none, enter 0", - "schema": {}, - "options": {} - }, - { - "name": "StaffUsersTestedCovid", - "type": "NumberField", - "title": "How many staff have been tested for COVID-19?", - "hint": "If none, enter 0", - "schema": {}, - "options": { - "required": false - } - } - ], - "next": [ - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/severity-of-illness", - "title": "Severity of illness in this outbreak", - "components": [ - { - "name": "severityIntro", - "type": "Para", - "content": "Include cases confirmed by a test and people with symptoms of acute respiratory infections.", - "options": {} - }, - { - "name": "SeverityGPCalls", - "type": "RadiosField", - "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", - "list": "CaseNumbers", + "name": "SeverityGPCalls", + "type": "RadiosField", + "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", "options": { "required": true, "customValidationMessages": { @@ -3886,1157 +3246,144 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Human Metapneumovirus (hMPV)", - "display": "Human Metapneumovirus (hMPV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Parainfluenza", - "display": "Parainfluenza" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Respiratory Syncytial Virus (RSV)", - "display": "Respiratory Syncytial Virus (RSV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Rhinovirus", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "value": { - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Other acute respiratory infection", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Adenovirus", - "display": "Adenovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Human Metapneumovirus (hMPV)", - "display": "Human Metapneumovirus (hMPV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Parainfluenza", - "display": "Parainfluenza" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Respiratory Syncytial Virus (RSV)", - "display": "Respiratory Syncytial Virus (RSV)" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "ARIInfectionType", - "type": "CheckboxesField", - "display": "What infection are you reporting?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Rhinovirus", - "display": "Rhinovirus" - } - }, - { - "coordinator": "and", - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "value": { - "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, - { - "displayName": "PositiveARI:No", - "name": "PositiveARI:No", - "value": { - "name": "PositiveARI:No", - "conditions": [ - { - "field": { - "name": "PositiveARI", - "type": "RadiosField", - "display": "Do you have any positive test results for an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "TwoOrMoreARI:No", - "name": "TwoOrMoreARI:No", - "value": { - "name": "TwoOrMoreARI:No", - "conditions": [ - { - "field": { - "name": "TwoOrMoreARI", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "TwoOrMoreCovid:No", - "name": "TwoOrMoreCovid:No", - "value": { - "name": "TwoOrMoreCovid:No", - "conditions": [ - { - "field": { - "name": "TwoOrMoreCovid", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:FLU", - "name": "WhichARI:FLU", - "value": { - "name": "WhichARI:FLU", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19&FLU&OTHER", - "name": "WhichARI:COVID19&FLU&OTHER", - "value": { - "name": "WhichARI:COVID19&FLU&OTHER", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER", - "name": "WhichARI:COVID19ANDOTHER", - "value": { - "name": "WhichARI:COVID19ANDOTHER", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDFLU", - "name": "WhichARI:COVID19ANDFLU", - "value": { - "name": "WhichARI:COVID19ANDFLU", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "value": { - "name": "WhichARI:COVID19ANDOTHER_COVID_NOT_REPORTABLE", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCasesNotCovidFlu", - "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCasesNotCovidFlu", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "value": { - "name": "WhichARI:COVID19ANDOTHER_OTHER_NOT_REPORTABLE", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCovid", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of COVID-19?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "true", - "display": "true" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreARI", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "value": { - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCovid", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of COVID-19?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCasesNotCovidFlu", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - { - "displayName": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "value": { - "name": "WhichARI:COVID19ANDOTHER_BOTH_NOT_REPORTABLE2", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCovid5days", - "type": "RadiosField", - "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCovidSpread", - "type": "RadiosField", - "display": "Is it possible that at least 2 of the cases of COVID-19 are linked by spread in your setting?​" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "No", - "display": "No" - } - }, - { - "coordinator": "and", - "field": { - "name": "TwoOrMoreCasesNotCovidFlu", - "type": "RadiosField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "false", - "display": "false" - } - } - ] - } - }, - - { - "displayName": "WhichARI:COVID19", - "name": "WhichARI:COVID19", - "value": { - "name": "WhichARI:COVID19", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - } - ] - } - }, - { - "displayName": "WhichARI:Other", - "name": "WhichARI:Other", - "value": { - "name": "WhichARI:Other", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndFlu", - "name": "WhichARI:CovidAndFlu", - "value": { - "name": "WhichARI:CovidAndFlu", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidAndOther", - "name": "WhichARI:CovidAndOther", - "value": { - "name": "WhichARI:CovidAndOther", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" - } - } - ] - } - }, - { - "displayName": "WhichARI:CovidFluAndConfirmedARI", - "name": "WhichARI:CovidFluAndConfirmedARI", - "value": { - "name": "WhichARI:CovidFluAndConfirmedARI", - "conditions": [ - { - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Service users", + "display": "Service users" } } ] } }, { - "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", "value": { - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", "conditions": [ { "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "COVID-19", - "display": "COVID-19" + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" } }, { "coordinator": "and", "field": { - "name": "WhichARI", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, "operator": "contains", "value": { "type": "Value", - "value": "Flu", - "display": "Flu" + "value": "Service users", + "display": "Service users" } - }, + } + ] + } + }, + { + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ { - "coordinator": "and", "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Parainfluenza", + "display": "Parainfluenza" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, "operator": "contains", "value": { "type": "Value", - "value": "Staff", - "display": "Staff" + "value": "Service users", + "display": "Service users" } } ] } }, { - "displayName": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", "value": { - "name": "WhichARI:CovidFluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", "conditions": [ { "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "COVID-19", - "display": "COVID-19" + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" } }, { "coordinator": "and", "field": { - "name": "WhichARI", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, "operator": "contains", "value": { "type": "Value", - "value": "Flu", - "display": "Flu" + "value": "Service users", + "display": "Service users" } - }, + } + ] + } + }, + { + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "value": { + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "conditions": [ { - "coordinator": "and", "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Rhinovirus", + "display": "Rhinovirus" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5051,42 +3398,28 @@ } }, { - "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "value": { - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "conditions": [ { "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Other acute respiratory infection", + "display": "Rhinovirus" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5101,42 +3434,28 @@ } }, { - "displayName": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", "value": { - "name": "WhichARI:CovidAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Adenovirus", + "display": "Adenovirus" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5151,42 +3470,28 @@ } }, { - "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "value": { - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "Flu", - "display": "Flu" + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5201,114 +3506,100 @@ } }, { - "displayName": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "value": { - "name": "WhichARI:CovidAndFlu&ARIServiceOrStaff:ServiceUsers", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "COVID-19", - "display": "COVID-19" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "Flu", - "display": "Flu" + "value": "Parainfluenza", + "display": "Parainfluenza" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "value": { - "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "COVID-19", - "display": "COVID-19" + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "WhichARI:Covid&ARIServiceOrStaff:Staff", - "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "value": { - "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { "type": "Value", - "value": "COVID-19", - "display": "COVID-19" + "value": "Rhinovirus", + "display": "Rhinovirus" } }, { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5323,30 +3614,16 @@ } }, { - "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "value": { - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:Staff", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "WhichARI", + "name": "ARIInfectionType", "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "What infection are you reporting?" }, "operator": "contains", "value": { @@ -5358,7 +3635,7 @@ { "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", + "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, @@ -5373,144 +3650,132 @@ } }, { - "displayName": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "displayName": "PositiveARI:No", + "name": "PositiveARI:No", "value": { - "name": "WhichARI:FluAndConfirmedARI&ARIServiceOrStaff:ServiceUsers", + "name": "PositiveARI:No", "conditions": [ { "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "name": "PositiveARI", + "type": "RadiosField", + "display": "Do you have any positive test results for an acute respiratory infection?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Flu", - "display": "Flu" + "value": "false", + "display": "false" } - }, + } + ] + } + }, + { + "displayName": "TwoOrMoreARI:No", + "name": "TwoOrMoreARI:No", + "value": { + "name": "TwoOrMoreARI:No", + "conditions": [ { - "coordinator": "and", "field": { - "name": "WhichARI", - "type": "CheckboxesField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "name": "TwoOrMoreARI", + "type": "RadiosField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "false", + "display": "false" } - }, + } + ] + } + }, + { + "displayName": "TwoOrMoreCovid:No", + "name": "TwoOrMoreCovid:No", + "value": { + "name": "TwoOrMoreCovid:No", + "conditions": [ { - "coordinator": "and", "field": { - "name": "ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + "name": "TwoOrMoreCovid", + "type": "RadiosField", + "display": "Are you reporting 2 or more cases?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "false", + "display": "false" } } ] } }, { - "displayName": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", - "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "displayName": "WhichARI:FLU", + "name": "WhichARI:FLU", "value": { - "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:FLU", "conditions": [ { "field": { "name": "WhichARI", - "type": "CheckboxesField", + "type": "RadiosField", "display": "Which acute respiratory infections do you have a positive test result for?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", "value": "Flu", "display": "Flu" } - }, - { - "coordinator": "and", - "field": { - "name": "ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Service users", - "display": "Service users" - } } ] } }, { - "displayName": "WhichARI:Flu&ARIServiceOrStaff:Staff", - "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "displayName": "WhichARI:COVID19", + "name": "WhichARI:COVID19", "value": { - "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "name": "WhichARI:COVID19", "conditions": [ { "field": { "name": "WhichARI", - "type": "CheckboxesField", + "type": "RadiosField", "display": "Which acute respiratory infections do you have a positive test result for?" }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Flu", - "display": "Flu" - } - }, - { - "coordinator": "and", - "field": { - "name": "ARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Staff", - "display": "Staff" + "value": "COVID-19", + "display": "COVID-19" } } ] } }, { - "displayName": "WhichOtherARI:Adenovirus", - "name": "WhichOtherARI:Adenovirus", + "displayName": "WhichARI:Other", + "name": "WhichARI:Other", "value": { - "name": "WhichOtherARI:Adenovirus", + "name": "WhichARI:Other", "conditions": [ { "field": { - "name": "TwoOrMoreCovid5days", + "name": "WhichARI", "type": "RadiosField", - "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + "display": "Which acute respiratory infections do you have a positive test result for?" }, "operator": "is", "value": { "type": "Value", - "value": "No", - "display": "No" + "value": "Any other acute respiratory infections", + "display": "Any other acute respiratory infections" } } ] @@ -5553,82 +3818,102 @@ } }, { - "displayName": "TwoOrMoreCasesNotCovidFlu:YES", - "name": "TwoOrMoreCasesNotCovidFlu:YES", + "displayName": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", "value": { - "name": "TwoOrMoreCasesNotCovidFlu:YES", + "name": "WhichARI:Covid&ARIServiceOrStaff:ServiceUsers", "conditions": [ { "field": { - "name": "TwoOrMoreCasesNotCovidFlu", + "name": "WhichARI", "type": "RadiosField", - "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" + "display": "Which acute respiratory infections do you have a positive test result for?" }, "operator": "is", "value": { "type": "Value", - "value": "true", - "display": "true" + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" } } ] } }, { - "displayName": "SingleCaseOfFluServiceOrStaff:ServiceUser", - "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "displayName": "WhichARI:Covid&ARIServiceOrStaff:Staff", + "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", "value": { - "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "name": "WhichARI:Covid&ARIServiceOrStaff:Staff", "conditions": [ { "field": { - "name": "SingleCaseOfFluServiceOrStaff", + "name": "WhichARI", "type": "RadiosField", - "display": "Who has the case of flu?" + "display": "Which acute respiratory infections do you have a positive test result for?" }, "operator": "is", "value": { "type": "Value", - "value": "Service user", - "display": "Service user" + "value": "COVID-19", + "display": "COVID-19" + } + }, + { + "coordinator": "and", + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" } } ] } }, { - "displayName": "NumberOfCasesOfFlu:One", - "name": "NumberOfCasesOfFlu:One", + "displayName": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", + "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", "value": { - "name": "NumberOfCasesOfFlu:One", + "name": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers", "conditions": [ { "field": { - "name": "NumberOfCasesOfFlu", + "name": "WhichARI", "type": "RadiosField", - "display": "How many cases of flu are you reporting?" + "display": "Which acute respiratory infections do you have a positive test result for?" }, "operator": "is", "value": { "type": "Value", - "value": "One", - "display": "1" + "value": "Flu", + "display": "Flu" } - } - ] - } - }, - { - "displayName": "CovidServiceOrStaff:ServiceUsers", - "name": "CovidServiceOrStaff:ServiceUsers", - "value": { - "name": "CovidServiceOrStaff:ServiceUsers", - "conditions": [ + }, { + "coordinator": "and", "field": { - "name": "CovidServiceOrStaff", + "name": "ARIServiceOrStaff", "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" }, "operator": "contains", "value": { @@ -5640,59 +3925,68 @@ ] } }, + { - "displayName": "CovidServiceOrStaff:Staff", - "name": "CovidServiceOrStaff:Staff", + "displayName": "TwoOrMoreCasesNotCovidFlu:YES", + "name": "TwoOrMoreCasesNotCovidFlu:YES", "value": { - "name": "CovidServiceOrStaff:Staff", + "name": "TwoOrMoreCasesNotCovidFlu:YES", "conditions": [ { "field": { - "name": "CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" + "name": "TwoOrMoreCasesNotCovidFlu", + "type": "RadiosField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection that is not COVID-19 or flu?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Staff", - "display": "Staff" + "value": "true", + "display": "true" } } ] } }, { - "displayName": "CovidServiceOrStaff:Both", - "name": "CovidServiceOrStaff:Both", + "displayName": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", "value": { - "name": "CovidServiceOrStaff:Both", + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", "conditions": [ { "field": { - "name": "CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" + "name": "SingleCaseOfFluServiceOrStaff", + "type": "RadiosField", + "display": "Who has the case of flu?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Service user", + "display": "Service user" } - }, + } + ] + } + }, + { + "displayName": "NumberOfCasesOfFlu:One", + "name": "NumberOfCasesOfFlu:One", + "value": { + "name": "NumberOfCasesOfFlu:One", + "conditions": [ { - "coordinator": "and", "field": { - "name": "CovidServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of COVID-19 in?" + "name": "NumberOfCasesOfFlu", + "type": "RadiosField", + "display": "How many cases of flu are you reporting?" }, - "operator": "contains", + "operator": "is", "value": { "type": "Value", - "value": "Staff", - "display": "Staff" + "value": "One", + "display": "1" } } ] From 157bf230c813bd943809d8165a93cec6179a8b32 Mon Sep 17 00:00:00 2001 From: Etasha-ukhsa Date: Fri, 21 Mar 2025 12:41:38 +0000 Subject: [PATCH 180/403] Adding test branch for verifying SRS connectivity --- .../server/forms/testSRSendpointconfig.json | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 runner/src/server/forms/testSRSendpointconfig.json diff --git a/runner/src/server/forms/testSRSendpointconfig.json b/runner/src/server/forms/testSRSendpointconfig.json new file mode 100644 index 0000000000..8718d15ef4 --- /dev/null +++ b/runner/src/server/forms/testSRSendpointconfig.json @@ -0,0 +1,83 @@ +{ + "metadata": {}, + "startPage": "/are-you-human", + "pages": [ + { + "title": "Are you human?", + "path": "/are-you-human", + "components": [ + { + "name": "lowQbd", + "options": {}, + "type": "RadiosField", + "title": "Are you human", + "list": "WLIOaK" + } + ], + "next": [{ "path": "/contact-details-demo" }] + }, + { + "path": "/contact-details-demo", + "title": "Contact details [DEMO]", + "components": [ + { + "name": "wHFRap", + "options": {}, + "type": "TelephoneNumberField", + "title": "Telephone" + }, + { + "name": "JVJByV", + "options": {}, + "type": "InsetText", + "content": "Name" + }, + { + "name": "bAcqXA", + "options": { "exposeToContext": false, "required": false }, + "type": "UkAddressField", + "title": "Addresss" + } + ], + "next": [{ "path": "/summary" }] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [], + "next": [] + } + ], + "lists": [ + { + "title": "YesNo", + "name": "WLIOaK", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + } + ], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "CzHjkd", + "title": "SRS Endpoint", + "type": "webhook", + "outputConfiguration": { + "url": "https://rwjvk4d6wj.execute-api.eu-west-2.amazonaws.com/v1/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "name": "Test Endpoint Config", + "feedback": { "feedbackForm": false, "url": "" }, + "phaseBanner": {} +} From e5570274d10d106f92148d2cdc981e971d385c6f Mon Sep 17 00:00:00 2001 From: Etasha-ukhsa Date: Fri, 21 Mar 2025 14:17:24 +0000 Subject: [PATCH 181/403] Adding test branch for verifying SRS connectivity --- runner/src/server/forms/testSRSendpointconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/testSRSendpointconfig.json b/runner/src/server/forms/testSRSendpointconfig.json index 8718d15ef4..08c4046b54 100644 --- a/runner/src/server/forms/testSRSendpointconfig.json +++ b/runner/src/server/forms/testSRSendpointconfig.json @@ -69,7 +69,7 @@ "title": "SRS Endpoint", "type": "webhook", "outputConfiguration": { - "url": "https://rwjvk4d6wj.execute-api.eu-west-2.amazonaws.com/v1/v1/forms", + "url": "https://6m548a7wv4.execute-api.eu-west-2.amazonaws.com/v1/forms", "allowRetry": true } } From 9cb7ca1ae91c9b9f461853a079593fed3e5f45de Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:12:02 +0000 Subject: [PATCH 182/403] Modify Test Endpoint Config --- .../src/server/forms/TestEndpointConfig.json | 133 ++++++++++++++++++ .../server/forms/testSRSendpointconfig.json | 83 ----------- 2 files changed, 133 insertions(+), 83 deletions(-) create mode 100644 runner/src/server/forms/TestEndpointConfig.json delete mode 100644 runner/src/server/forms/testSRSendpointconfig.json diff --git a/runner/src/server/forms/TestEndpointConfig.json b/runner/src/server/forms/TestEndpointConfig.json new file mode 100644 index 0000000000..f23177c2a5 --- /dev/null +++ b/runner/src/server/forms/TestEndpointConfig.json @@ -0,0 +1,133 @@ +{ + "metadata": { + + }, + "startPage": "/are-you-human", + "pages": [ + { + "title": "Are you human?", + "path": "/are-you-human", + "components": [ + { + "name": "lowQbd", + "options": { + + }, + "type": "RadiosField", + "title": "Are you human", + "list": "WLIOaK", + "schema": { + + } + } + ], + "next": [ + { + "path": "/contact-details-demo" + } + ] + }, + { + "path": "/contact-details-demo", + "title": "Contact details [DEMO]", + "components": [ + { + "name": "IndividualsName", + "options": { + + }, + "type": "TextField", + "title": "Your name", + "nameHasError": false, + "schema": { + "min": "1" + } + }, + { + "name": "wHFRap", + "options": { + + }, + "type": "TelephoneNumberField", + "title": "Telephone", + "schema": { + + } + }, + { + "name": "Address", + "options": { + "exposeToContext": false, + "required": false + }, + "type": "UkAddressField", + "title": "Address", + "schema": { + + }, + "nameHasError": false + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [], + "next": [] + } + ], + "lists": [ + { + "title": "YesNo", + "name": "WLIOaK", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + } + ] + } + ], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "CzHjkd", + "title": "SRS Endpoint", + "type": "webhook", + "outputConfiguration": { + "url": "https://rwjvk4d6wj.execute-api.eu-west-2.amazonaws.com/v1/v1/forms", + "allowRetry": true, + "sendAdditionalPayMetadata": false + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "name": "Test Endpoint Config", + "feedback": { + "feedbackForm": false, + "url": "" + }, + "phaseBanner": { + + }, + "declaration": "" +} diff --git a/runner/src/server/forms/testSRSendpointconfig.json b/runner/src/server/forms/testSRSendpointconfig.json deleted file mode 100644 index 08c4046b54..0000000000 --- a/runner/src/server/forms/testSRSendpointconfig.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "metadata": {}, - "startPage": "/are-you-human", - "pages": [ - { - "title": "Are you human?", - "path": "/are-you-human", - "components": [ - { - "name": "lowQbd", - "options": {}, - "type": "RadiosField", - "title": "Are you human", - "list": "WLIOaK" - } - ], - "next": [{ "path": "/contact-details-demo" }] - }, - { - "path": "/contact-details-demo", - "title": "Contact details [DEMO]", - "components": [ - { - "name": "wHFRap", - "options": {}, - "type": "TelephoneNumberField", - "title": "Telephone" - }, - { - "name": "JVJByV", - "options": {}, - "type": "InsetText", - "content": "Name" - }, - { - "name": "bAcqXA", - "options": { "exposeToContext": false, "required": false }, - "type": "UkAddressField", - "title": "Addresss" - } - ], - "next": [{ "path": "/summary" }] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [], - "next": [] - } - ], - "lists": [ - { - "title": "YesNo", - "name": "WLIOaK", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - } - ], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "CzHjkd", - "title": "SRS Endpoint", - "type": "webhook", - "outputConfiguration": { - "url": "https://6m548a7wv4.execute-api.eu-west-2.amazonaws.com/v1/forms", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "name": "Test Endpoint Config", - "feedback": { "feedbackForm": false, "url": "" }, - "phaseBanner": {} -} From 4880f8f7fdf2792517bb4a65c8b0f1d7175c6320 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:29:28 +0000 Subject: [PATCH 183/403] Update TestEndpointConfig.json --- runner/src/server/forms/TestEndpointConfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestEndpointConfig.json b/runner/src/server/forms/TestEndpointConfig.json index f23177c2a5..9d5b538007 100644 --- a/runner/src/server/forms/TestEndpointConfig.json +++ b/runner/src/server/forms/TestEndpointConfig.json @@ -108,7 +108,7 @@ "title": "SRS Endpoint", "type": "webhook", "outputConfiguration": { - "url": "https://rwjvk4d6wj.execute-api.eu-west-2.amazonaws.com/v1/v1/forms", + "url": "https://6m548a7wv4.execute-api.eu-west-2.amazonaws.com/v1/forms", "allowRetry": true, "sendAdditionalPayMetadata": false } From 59032cf885cca44d17f9fc9c056ba41eef57d208 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 21 Mar 2025 17:17:08 +0000 Subject: [PATCH 184/403] CAR-828 --- runner/src/server/forms/ReportAnOutbreak.json | 32 ++++++------------- runner/src/server/forms/feedback.json | 5 +-- runner/src/server/forms/magic-link.json | 3 -- .../engine/components/EmailAddressField.ts | 10 ++++-- .../engine/components/TelephoneNumberField.ts | 15 ++++----- 5 files changed, 25 insertions(+), 40 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index e622aaad4d..ba0a1f4a29 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3131,11 +3131,11 @@ "options": { "customValidationMessages": { "string.empty": "Enter a main contact's full name", - "string.pattern.base": "Main contact's name must be 99 characters or less" + "string.max": "Main contact's name must be 99 characters or less" } }, "schema": { - "regex": "^.{0,99}$" + "max": 99 }, "type": "TextField", "nameHasError": false, @@ -3149,11 +3149,11 @@ "options": { "required": false, "customValidationMessages": { - "string.pattern.base": "Main contact's job title must be 99 characters or less" + "string.max": "Main contact's job title must be 99 characters or less" } }, "schema": { - "regex": "^.{0,99}$" + "max": 99 }, "type": "TextField", "nameHasError": false, @@ -3171,10 +3171,7 @@ "string.pattern.base": "Enter a main contact's phone number, like 01632 960 001 or 07700 900 982" } }, - "schema": { - "regex": "^(0\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3}|\\+\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3})$" - }, - "type": "TextField", + "type": "TelephoneNumberField", "nameHasError": false, "title": "Phone number", "values": { @@ -3190,9 +3187,6 @@ "string.pattern.base": "Enter a main contact's email address in the correct format, like name@example.com" } }, - "schema": { - "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" - }, "type": "EmailAddressField", "nameHasError": false, "title": "Email address", @@ -3214,11 +3208,11 @@ "options": { "required": false, "customValidationMessages": { - "string.pattern.base": "Additional contact's name must be 99 characters or less" + "string.max": "Additional contact's name must be 99 characters or less" } }, "schema": { - "regex": "^.{0,99}$" + "max": 99 }, "type": "TextField", "nameHasError": false, @@ -3236,7 +3230,7 @@ } }, "schema": { - "regex": "^.{0,99}$" + "max": 99 }, "type": "TextField", "nameHasError": false, @@ -3254,10 +3248,7 @@ "string.pattern.base": "Enter an additional contact's phone number, like 01632 960 001 or 07700 900 982" } }, - "schema": { - "regex": "^(0\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3}|\\+\\d{2}[\\s]?\\d{3}[\\s]?\\d{3}[\\s]?\\d{3})$" - }, - "type": "TextField", + "type": "TelephoneNumberField", "nameHasError": false, "title": "Phone number", "values": { @@ -3272,10 +3263,7 @@ "string.pattern.base": "Enter an additional contact's email address in the correct format, like name@example.com" } }, - "schema": { - "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" - }, - "type": "TextField", + "type": "EmailAddressField", "nameHasError": false, "title": "Email address", "values": { diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json index aa5ae95ed7..47d5e475a3 100644 --- a/runner/src/server/forms/feedback.json +++ b/runner/src/server/forms/feedback.json @@ -49,11 +49,8 @@ "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, - "schema": { - "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" - }, "title": "Email address for a researcher to contact you", - "type": "TextField" + "type": "EmailAddressField" } ], "next": [ diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index 282a9d5ec0..1ee2d6fba4 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -26,9 +26,6 @@ "type": "EmailAddressField", "title": "Email address", "name": "email", - "schema": { - "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" - }, "options": { "exposeToContext": true, "customValidationMessages": { diff --git a/runner/src/server/plugins/engine/components/EmailAddressField.ts b/runner/src/server/plugins/engine/components/EmailAddressField.ts index 1a5158f4ca..4de43f6db2 100644 --- a/runner/src/server/plugins/engine/components/EmailAddressField.ts +++ b/runner/src/server/plugins/engine/components/EmailAddressField.ts @@ -6,6 +6,8 @@ import { FormComponent } from "./FormComponent"; import { addClassOptionIfNone } from "./helpers"; import joi, { Schema } from "joi"; +const EMAIL_REGEX = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"; + export class EmailAddressField extends FormComponent { formSchema; stateSchema; @@ -19,11 +21,13 @@ export class EmailAddressField extends FormComponent { // Define Joi schema for email validation let emailSchema = joi.string(); - if (this.schema.regex) { - const pattern = new RegExp(this.schema.regex); - emailSchema = emailSchema.pattern(pattern); + if (this.options.required === false) { + emailSchema = emailSchema.allow("").allow(null); } + const pattern = new RegExp(EMAIL_REGEX); + emailSchema = emailSchema.pattern(pattern); + if (this.options.customValidationMessages) { emailSchema = emailSchema.messages(this.options.customValidationMessages); } diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index 3cb016203b..f8ed386f90 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -6,23 +6,22 @@ import { addClassOptionIfNone, internationalPhoneValidator } from "./helpers"; import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; -const PATTERN = /^[0-9\\\s+()-]*$/; -const DEFAULT_MESSAGE = "Enter a telephone number in the correct format"; +const TELEPHONE_REGEX = + "^((\\+44\\s?|0)7\\d{3}\\s?\\d{3}\\s?\\d{3}|(\\+44\\s?|0)1\\d{1,3}\\s?\\d{3,4}\\s?\\d{3,4})$"; + export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); const { options = {}, schema = {} } = def; - const pattern = schema.regex ? new RegExp(schema.regex) : PATTERN; let componentSchema = joi.string(); if (options.required === false) { componentSchema = componentSchema.allow("").allow(null); } - componentSchema = componentSchema - .pattern(pattern) - .message(def.options?.customValidationMessage ?? DEFAULT_MESSAGE) - .label(def.title.toLowerCase()); + + const pattern = new RegExp(TELEPHONE_REGEX); + componentSchema = componentSchema.pattern(pattern); if (schema.max) { componentSchema = componentSchema.max(schema.max); @@ -43,7 +42,7 @@ export class TelephoneNumberField extends FormComponent { } this.schema = componentSchema; - addClassOptionIfNone(this.options, "govuk-input--width-10"); + addClassOptionIfNone(this.options, "govuk-input--width-20"); } getFormSchemaKeys() { From 931b4ca5aac98047eec81b62c998153c8776a7b2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 24 Mar 2025 08:44:08 +0000 Subject: [PATCH 185/403] CAR-536, CAR-537, CAR-538, CAR-539, CAR-223 Custom check your answers pages & CAR-231 - Move setting details to beginning of flow (#298) --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + runner/src/server/forms/ReportAnOutbreak.json | 293 ++++++++-- .../CustomSummaryPageController.ts | 503 ++++++++++++++++++ .../pageControllers/PageControllerBase.ts | 2 + .../plugins/engine/pageControllers/helpers.ts | 2 + .../plugins/engine/pageControllers/index.ts | 1 + runner/src/server/views/custom-summary.html | 141 +++++ 8 files changed, 900 insertions(+), 44 deletions(-) create mode 100644 runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts create mode 100644 runner/src/server/views/custom-summary.html diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index dc09e3534a..3b6ff902fb 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -17,6 +17,7 @@ export interface Page { section?: string; // the section ID sectionForExitJourneySummaryPages?: string; sectionForMultiSummaryPages?: string; + sectionForEndSummaryPages?: string; sidebarContent?: any; next?: { path: string; condition?: string }[]; } diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 185dd136b1..c19efc9593 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -115,6 +115,7 @@ const pageSchema = joi.object().keys({ section: joi.string(), sectionForExitJourneySummaryPages: joi.string(), sectionForMultiSummaryPages: joi.string(), + sectionForEndSummaryPages: joi.string(), sidebarContent: joi.object().optional(), controller: joi.string(), components: joi.array().items(componentSchema), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index e4ba256010..6db3db49b3 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -42,6 +42,7 @@ "title": "What type of adult social care do you provide?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "SettingDetails", "components": [ { "name": "CareSettingType", @@ -76,7 +77,7 @@ ], "next": [ { - "path": "/positive-ari" + "path": "/setting-details" } ] }, @@ -85,6 +86,7 @@ "title": "Do you have any positive test results for an acute respiratory infection?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "PositiveARI", @@ -117,6 +119,7 @@ "title": "Which acute respiratory infections do you have a positive test result for?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "WhichARI", @@ -146,6 +149,7 @@ "title": "Are you reporting 2 or more cases?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "TwoOrMoreCovid", @@ -153,7 +157,7 @@ "list": "YesNo", "nameHasError": false, "options": { - "summaryTitle": "2 or more cases", + "summaryTitle": "COVID-19: 2 or more cases", "customValidationMessages": { "any.required": "Select yes if you are reporting 2 or more cases" } @@ -178,6 +182,7 @@ "path": "/2-or-more-covid-descriptive", "title": "Are you reporting 2 or more cases of COVID-19?", "sectionForMultiSummaryPages": "Covid19InYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -212,6 +217,7 @@ "title": "Acute respiratory infections in your setting", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -220,7 +226,7 @@ { "name": "TwoOrMoreCovid5days", "options": { - "summaryTitle": "Symptoms started within 5 days of each other" + "summaryTitle": "COVID-19: symptoms started within 5 days of each other" }, "type": "RadiosField", "nameHasError": false, @@ -233,7 +239,7 @@ { "name": "TwoOrMoreCovidSpread", "options": { - "summaryTitle": "The cases are linked by spread" + "summaryTitle": "COVID-19: cases are linked by spread" }, "type": "RadiosField", "nameHasError": false, @@ -263,6 +269,7 @@ "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "Covid19InYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "TwoOrMoreARI", @@ -305,11 +312,12 @@ "title": "Are you reporting 2 or more cases of an acute respiratory infection?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "OtherInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "TwoOrMoreCasesNotCovidFlu", "options": { - "summaryTitle": "2 or more cases" + "summaryTitle": "Other acute respiratory infection: 2 or more cases" }, "type": "RadiosField", "list": "YesNo", @@ -334,11 +342,12 @@ "path": "/ari-infection-type", "title": "What infection are you reporting?", "sectionForMultiSummaryPages": "OtherInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "ARIInfectionType", "options": { - "summaryTitle": "Infection type", + "summaryTitle": "Other acute respiratory infection: infection type", "customValidationMessages": { "any.required": "Select the infection you are reporting" } @@ -366,6 +375,7 @@ { "path": "/service-users-ari-confirmed", "title": "Service users: number of other cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -377,6 +387,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: with symptoms, but not tested" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", @@ -395,6 +408,7 @@ "max": 999 }, "options": { + "summaryTitle": "Service users: negative COVID-19 test results", "required": false, "customValidationMessages": { "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999", @@ -409,6 +423,7 @@ "hint": "If none, enter 0", "options": { "required": false, + "summaryTitle": "Service users: negative flu test results", "customValidationMessages": { "number.max": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999", "number.min": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999" @@ -454,6 +469,7 @@ { "path": "/service-users-ari-adenovirus", "title": "Service users: number of adenovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -465,6 +481,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: confirmed positive adenovirus test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for adenovirus", @@ -527,6 +546,7 @@ { "path": "/staff-ari-adenovirus", "title": "Staff: number of adenovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -538,6 +558,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive adenovirus test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for adenovirus", @@ -596,6 +619,7 @@ { "path": "/service-users-ari-hmpv", "title": "Service users: number of human Metapneumovirus (hMPV) cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -607,6 +631,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: confirmed positive human Metapneumovirus (hMPV) test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for human Metapneumovirus (hMPV)", @@ -661,6 +688,7 @@ { "path": "/staff-ari-hmpv", "title": "Staff: number of human Metapneumovirus (hMPV) cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -672,6 +700,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive human Metapneumovirus (hMPV) test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for human Metapneumovirus (hMPV)", @@ -722,6 +753,7 @@ { "path": "/service-users-ari-parainfluenza", "title": "Service users: number of parainfluenza cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -733,6 +765,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: confirmed positive parainfluenza test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for parainfluenza", @@ -779,6 +814,7 @@ { "path": "/staff-ari-parainfluenza", "title": "Staff: number of parainfluenza cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -790,6 +826,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive parainfluenza test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for parainfluenza", @@ -832,6 +871,7 @@ { "path": "/service-users-ari-rsv", "title": "Service users: number of Respiratory Syncytial Virus (RSV) cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -843,6 +883,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: confirmed positive Respiratory Syncytial Virus (RSV) test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for Respiratory Syncytial Virus (RSV)", @@ -881,6 +924,7 @@ { "path": "/staff-ari-rsv", "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -892,6 +936,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive Respiratory Syncytial Virus (RSV) test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for Respiratory Syncytial Virus (RSV)", @@ -926,6 +973,7 @@ { "path": "/service-users-ari-rhinovirus", "title": "Service users: number of rhinovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -937,6 +985,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: confirmed positive rhinovirus test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for rhinovirus", @@ -967,6 +1018,7 @@ { "path": "/staff-ari-rhinovirus", "title": "Staff: number of rhinovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -978,6 +1030,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive rhinovirus test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for rhinovirus", @@ -1004,6 +1059,7 @@ { "path": "/service-users-ari-other", "title": "Service users: number of other acute respiratory infection cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1015,6 +1071,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: confirmed positive other acute respiratory infection test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for an other acute respiratory infection", @@ -1037,6 +1096,7 @@ { "path": "/staff-ari-other", "title": "Staff: number of other acute respiratory infection cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1048,6 +1108,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive other acute respiratory infection test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for an other acute respiratory infection", @@ -1066,6 +1129,7 @@ { "path": "/service-users-ari-unknown", "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1077,6 +1141,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Service users: with symptoms, but not tested" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", @@ -1096,6 +1163,7 @@ }, "options": { "required": false, + "summaryTitle": "Service users: negative COVID-19 test results", "customValidationMessages": { "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999", "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999" @@ -1109,6 +1177,7 @@ "hint": "If none, enter 0", "options": { "required": false, + "summaryTitle": "Service users: negative flu test results", "customValidationMessages": { "number.max": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999", "number.min": "The number of service users that have been tested for flu and had a negative test result must be between 0 and 999" @@ -1133,6 +1202,7 @@ { "path": "/staff-ari-unknown", "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ { @@ -1148,6 +1218,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: confirmed positive flu test results" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", @@ -1166,6 +1239,7 @@ "max": 999 }, "options": { + "summaryTitle": "Staff: negative COVID-19 test results", "required": false, "customValidationMessages": { "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", @@ -1180,6 +1254,7 @@ "hint": "If none, enter 0", "options": { "required": false, + "summaryTitle": "Staff: negative flu test results", "customValidationMessages": { "number.max": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999", "number.min": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999" @@ -1200,6 +1275,7 @@ { "path": "/staff-ari-confirmed", "title": "Staff: number of other cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "StaffSymptomsNotTested", @@ -1210,6 +1286,9 @@ "min": 0, "max": 999 }, + "options": { + "summaryTitle": "Staff: with symptoms, but not tested" + }, "options": { "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", @@ -1229,6 +1308,7 @@ }, "options": { "required": false, + "summaryTitle": "Staff: negative COVID-19 test results", "customValidationMessages": { "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" @@ -1242,6 +1322,7 @@ "hint": "If none, enter 0", "options": { "required": false, + "summaryTitle": "Staff: negative flu test results", "customValidationMessages": { "number.max": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999", "number.min": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999" @@ -1310,10 +1391,13 @@ { "path": "/cases-of-flu", "title": "How many cases are you reporting?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "NumberOfCasesOfFlu", - "options": {}, + "options": { + "summaryTitle": "Flu: number of cases" + }, "type": "RadiosField", "nameHasError": false, "title": "How many cases are you reporting?", @@ -1337,10 +1421,13 @@ { "path": "/single-case-of-flu", "title": "Who has the case of flu?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "SingleCaseOfFluServiceOrStaff", - "options": {}, + "options": { + "summaryTitle": "Who has the flu?" + }, "type": "RadiosField", "nameHasError": false, "title": "Who has the case of flu?", @@ -1356,17 +1443,19 @@ "condition": "SingleCaseOfFluServiceOrStaff:ServiceUser" }, { - "path": "/vaccination" + "path": "/contact-details" } ] }, { "path": "/service-users-flu", "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "ServiceUsersFluSwabTest", "options": { + "summaryTitle": "Service users: confirmed positive flu test results", "customValidationMessages": { "number.base": "Enter the number of service users that have flu confirmed by a positive swab test", "number.max": "The number of service users that have flu confirmed by a positive swab test must be between 0 and 999", @@ -1386,6 +1475,7 @@ "name": "ServiceUsersChestInfection", "options": { "required": false, + "summaryTitle": "Service users: diagnosed with a chest infection by a GP", "customValidationMessages": { "number.max": "The number of service users that have been diagnosed with a chest infection by a GP must be between 0 and 999", "number.min": "The number of service users that have been diagnosed with a chest infection by a GP must be between 0 and 999" @@ -1403,6 +1493,7 @@ { "name": "ServiceUsersSymptomsNotTested", "options": { + "summaryTitle": "Service users: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -1422,6 +1513,7 @@ "name": "ServiceUsersChestInfectionCovid19", "options": { "required": false, + "summaryTitle": "Service users: negative COVID-19 test results", "customValidationMessages": { "number.max": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999", "number.min": "The number of service users that have been tested for COVID-19 and had a negative test result must be between 0 and 999" @@ -1450,6 +1542,7 @@ { "path": "/staff-flu", "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1459,6 +1552,7 @@ { "name": "StaffFluSwabTest", "options": { + "summaryTitle": "Staff: confirmed positive flu test results", "customValidationMessages": { "number.base": "Enter the number of staff that have flu confirmed by a positive swab test", "number.max": "The number of staff that have flu confirmed by a positive swab test must be between 0 and 999", @@ -1478,6 +1572,7 @@ "name": "StaffSymptomsNotTested", "options": { "required": false, + "summaryTitle": "Staff: with symptoms, but not tested", "customValidationMessages": { "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" @@ -1496,6 +1591,7 @@ "name": "StaffChestInfectionCovid19", "options": { "required": false, + "summaryTitle": "Staff: negative COVID-19 test results", "customValidationMessages": { "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" @@ -1520,6 +1616,7 @@ { "path": "/symptom-onset-flu", "title": "Symptom onset for the case of flu", + "sectionForEndSummaryPages": "SymptomOnset", "components": [ { "name": "intro", @@ -1529,7 +1626,8 @@ { "name": "FluSymptomOnsetDate", "options": { - "maxDaysInFuture": "0" + "maxDaysInFuture": "0", + "summaryTitle": "Symptoms started" }, "type": "DatePartsField", "nameHasError": false, @@ -1542,17 +1640,19 @@ ], "next": [ { - "path": "/vaccination" + "path": "/contact-details" } ] }, { "path": "/flu-severity", "title": "Severity of the case of flu", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "SingleCaseOfFluSeverityCalledGP", "options": { + "summaryTitle": "Have called the GP about", "customValidationMessages": { "any.required": "Select yes if you have called the GP because of the severity of illness" } @@ -1568,6 +1668,7 @@ { "name": "SingleCaseOfFluSeverityHospitalised", "options": { + "summaryTitle": "Has been hospitalised", "customValidationMessages": { "any.required": "Select yes if the person has been hospitalised with the flu" } @@ -1583,6 +1684,7 @@ { "name": "SingleCaseOfFluSeverityDeath", "options": { + "summaryTitle": "Has died", "customValidationMessages": { "any.required": "Select yes if the person has died with flu" } @@ -1605,11 +1707,13 @@ { "path": "/vaccination", "title": "Vaccination among your service users and staff", + "sectionForEndSummaryPages": "Vaccinations", "components": [ { "name": "ServiceUsersCovid19Vaccination", "options": { "required": false, + "summaryTitle": "Service users: up to date with COVID-19 vaccinations", "customValidationMessages": { "number.max": "The number of service users vaccinated for COVID-19 must be between 0 and 999", "number.min": "The number of service users vaccinated for COVID-19 must be between 0 and 999" @@ -1630,6 +1734,7 @@ "name": "ServiceUsersFluVaccination", "options": { "required": false, + "summaryTitle": "Service users: had the current seasonal flu vaccine ", "customValidationMessages": { "number.max": "The number of service users vaccinated for flu must be between 0 and 999", "number.min": "The number of service users vaccinated for flu must be between 0 and 999" @@ -1650,6 +1755,7 @@ "name": "ServiceUsersRSVVaccination", "options": { "required": false, + "summaryTitle": "Service users: had the respiratory syncytial virus (RSV) vaccine", "customValidationMessages": { "number.max": "The number of service users vaccinated for RSV must be between 0 and 999", "number.min": "The number of service users vaccinated for RSV must be between 0 and 999" @@ -1670,6 +1776,7 @@ "name": "StaffCovid19Vaccination", "options": { "required": false, + "summaryTitle": "Staff: up to date with COVID-19 vaccinations", "customValidationMessages": { "number.max": "The number of staff vaccinated for COVID-19 must be between 0 and 999", "number.min": "The number of staff vaccinated for COVID-19 must be between 0 and 999" @@ -1690,6 +1797,7 @@ "name": "StaffFluVaccination", "options": { "required": false, + "summaryTitle": "Staff: had the current seasonal flu vaccine", "customValidationMessages": { "number.max": "The number of staff vaccinated for flu must be between 0 and 999", "number.min": "The number of staff vaccinated for flu must be between 0 and 999" @@ -1716,6 +1824,7 @@ { "path": "/other-ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1728,6 +1837,7 @@ "hint": "You can select more than one option", "list": "ServiceOrStaffMultiple", "options": { + "summaryTitle": "Who has the infection", "required": true } } @@ -1745,6 +1855,7 @@ { "path": "/ari-confirmed-cases-setting", "title": "Who has an acute respiratory infection?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1757,6 +1868,7 @@ "hint": "You can select more than one option", "list": "ServiceOrStaffMultiple", "options": { + "summaryTitle": "Who has the infection", "required": true, "customValidationMessages": { "any.required": "Select if your service users or staff have an acute respiratory infection" @@ -1876,10 +1988,13 @@ { "path": "/ipc", "title": "Infection prevention and control (IPC) and outbreak management in your setting", + "sectionForEndSummaryPages": "IPC", "components": [ { "name": "IPCPractices", - "options": {}, + "options": { + "summaryTitle": "How often you monitor staff IPC practices" + }, "type": "RadiosField", "nameHasError": false, "title": "How often do you monitor staff infection prevention and control practices?", @@ -1891,7 +2006,9 @@ }, { "name": "Issues", - "options": {}, + "options": { + "summaryTitle": "Issues you need support with" + }, "type": "CheckboxesField", "nameHasError": false, "title": "What issues do you currently need support with?", @@ -1903,7 +2020,9 @@ }, { "name": "AGPs", - "options": {}, + "options": { + "summaryTitle": "Your setting undertakes aerosol generating procedures" + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, @@ -1916,6 +2035,7 @@ { "name": "MediaInterest", "options": { + "summaryTitle": "Media interest", "required": false }, "type": "RadiosField", @@ -1940,6 +2060,7 @@ { "path": "/flu-severity-multiple-cases", "title": "Severity of illness", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -1948,6 +2069,7 @@ { "name": "FluSeverityCalledGPMultipleCases", "options": { + "summaryTitle": "People you have called the GP about", "customValidationMessages": { "any.required": "Select the number of service users you have called the GP about because of the severity of illness" } @@ -1965,6 +2087,7 @@ "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", "type": "NumberField", "options": { + "summaryTitle": "People who have been given antibiotics", "required": false, "customValidationMessages": { "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", @@ -1979,6 +2102,7 @@ { "name": "FluSeverityHospitalisedMultipleCases", "options": { + "summaryTitle": "People who have been hospitalised", "customValidationMessages": { "any.required": "Select the number of service users or staff that have been hospitalised because of an acute respiratory infection" } @@ -1994,6 +2118,7 @@ { "name": "FluSeverityDeathMultipleCases", "options": { + "summaryTitle": "People who have died", "customValidationMessages": { "any.required": "Select the number of service users or staff that have died because of an acute respiratory infection" } @@ -2013,6 +2138,7 @@ "nameHasError": false, "list": "FluSeveritySpecificArea", "options": { + "summaryTitle": "Cases linked to specific area", "customValidationMessages": { "any.required": "Select if the cases are linked to a specific area of the setting" } @@ -2036,6 +2162,7 @@ { "path": "/service-users-covid", "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "NumberField", @@ -2044,6 +2171,7 @@ "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { "required": true, + "summaryTitle": "Service users: confirmed positive COVID-19 test results", "customValidationMessages": { "number.base": "Enter the number of service users that have COVID-19 confirmed by a positive test", "number.max": "The number of service users that have COVID-19 confirmed by a positive test must be between 0 and 999", @@ -2062,6 +2190,7 @@ "hint": "Include those who are currently in hospital or on visits out
    If none, enter 0", "options": { "required": true, + "summaryTitle": "Service users: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -2087,6 +2216,7 @@ { "path": "/staff-covid", "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", @@ -2099,6 +2229,7 @@ "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true, + "summaryTitle": "Staff: confirmed positive COVID-19 test results", "customValidationMessages": { "number.base": "Enter the number of staff that have COVID-19 confirmed by a positive test", "number.max": "The number of staff that have COVID-19 confirmed by a positive test must be between 0 and 999", @@ -2117,6 +2248,7 @@ "hint": "Include those who are currently in hospital
    If none, enter 0", "options": { "required": true, + "summaryTitle": "Staff: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -2138,6 +2270,7 @@ { "path": "/severity-of-illness", "title": "Severity of illness in this outbreak", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "severityIntro", @@ -2152,6 +2285,7 @@ "list": "CaseNumbers", "options": { "required": true, + "summaryTitle": "People you have called the GP about", "customValidationMessages": { "any.required": "Select the number of service users you have called the GP about because of the severity of illness" } @@ -2164,6 +2298,7 @@ "list": "CaseNumbers", "options": { "required": true, + "summaryTitle": "People who have been hospitalised", "customValidationMessages": { "any.required": "Select the number of service users or staff that have been hospitalised because of an acute respiratory infection" } @@ -2176,6 +2311,7 @@ "list": "CaseNumbers", "options": { "required": true, + "summaryTitle": "People who have died", "customValidationMessages": { "any.required": "Select the number of service users or staff that have been died because of an acute respiratory infection" } @@ -2191,6 +2327,7 @@ { "path": "/severity-of-illness-unknown", "title": "Severity of illness in this outbreak", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "name": "SeverityGPCalls", @@ -2198,7 +2335,8 @@ "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", "list": "CaseNumbers", "options": { - "required": true + "required": true, + "summaryTitle": "People you have called the GP about" } }, { @@ -2206,6 +2344,7 @@ "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", "type": "NumberField", "options": { + "summaryTitle": "People who have been given antibiotics", "required": false, "customValidationMessages": { "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", @@ -2223,6 +2362,7 @@ "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "options": { + "summaryTitle": "People who have been hospitalised", "required": true } }, @@ -2232,6 +2372,7 @@ "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", "list": "CaseNumbers", "options": { + "summaryTitle": "People who have died", "required": true } }, @@ -2241,7 +2382,9 @@ "type": "RadiosField", "nameHasError": false, "list": "FluSeveritySpecificArea", - "options": {}, + "options": { + "summaryTitle": "Cases linked to specific area" + }, "schema": {}, "values": { "type": "listRef" @@ -2257,6 +2400,7 @@ { "path": "/symptom-onset", "title": "Symptom onset of cases in this outbreak", + "sectionForEndSummaryPages": "SymptomOnset", "components": [ { "name": "introText1", @@ -2276,6 +2420,7 @@ "title": "When did symptoms start in the first case in this outbreak?", "hint": "For example, 31 3 2024", "options": { + "summaryTitle": "First case: symptoms started", "required": true, "maxDaysInFuture": "0" } @@ -2286,6 +2431,7 @@ "title": "When did symptoms start in the most recent case in this outbreak?", "hint": "For example, 31 3 2024", "options": { + "summaryTitle": "Most recent case: symptoms started", "required": true, "maxDaysInFuture": "0" } @@ -2300,10 +2446,13 @@ { "path": "/agps", "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "sectionForEndSummaryPages": "IPC", "components": [ { "name": "FFP3Masks", - "options": {}, + "options": { + "summaryTitle": "Staff wear fit-tested FFP3 masks" + }, "type": "RadiosField", "nameHasError": false, "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", @@ -2322,10 +2471,13 @@ { "path": "/agency-staff", "title": "Do you use agency staff or share staff with other care settings?", + "sectionForEndSummaryPages": "Staffing", "components": [ { "name": "AgencyStaff", - "options": {}, + "options": { + "summaryTitle": "You use agency staff or share staff with other settings" + }, "type": "RadiosField", "list": "YesNo", "nameHasError": false, @@ -2337,7 +2489,7 @@ ], "next": [ { - "path": "/setting-details", + "path": "/contact-details", "condition": "AgencyStaff:No" }, { @@ -2348,10 +2500,13 @@ { "path": "/additional-staff", "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "sectionForEndSummaryPages": "Staffing", "components": [ { "name": "AdditionalStaff", - "options": {}, + "options": { + "summaryTitle": "Agency staff or staff from other settings" + }, "type": "RadiosField", "nameHasError": false, "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", @@ -2363,17 +2518,19 @@ ], "next": [ { - "path": "/setting-details" + "path": "/contact-details" } ] }, { "path": "/setting-details", "title": "Setting details", + "sectionForEndSummaryPages": "SettingDetails", "components": [ { "name": "SettingName", "options": { + "summaryTitle": "Setting name", "customValidationMessages": { "string.empty": "Enter your setting name", "string.base": "Enter your setting name" @@ -2382,6 +2539,7 @@ "type": "TextField", "nameHasError": false, "title": "Your setting name", + "hint": "The name of the setting where the cases are located, not the management company", "values": { "type": "listRef" @@ -2390,6 +2548,7 @@ { "name": "SettingPostcode", "options": { + "summaryTitle": "Setting postcode", "customValidationMessages": { "string.empty": "Enter postcode", "string.pattern.base": "Enter a full UK postcode" @@ -2406,6 +2565,7 @@ { "name": "HPT", "options": { + "summaryTitle": "Local UKHSA health protection team", "required": true, "customValidationMessages": { "string.empty": "Select your local UKHSA health protection team", @@ -2431,6 +2591,7 @@ { "name": "CQCRegistered", "options": { + "summaryTitle": "Registered with the Care Quality Commission (CQC)", "customValidationMessages": { "any.required": "Select yes if your setting is registered with the Care Quality Commission (CQC)" }, @@ -2439,7 +2600,9 @@ "type": "TextField", "name": "CQCLocationID", "title": "Enter your CQC location ID, for example, 1-123456789", + "sectionForEndSummaryPages": "SettingDetails", "options": { + "summaryTitle": "CQC location ID", "customValidationMessages": { "string.empty": "CQC location ID cannot be blank", "string.pattern.base": "Enter a CQC location ID in the correct format" @@ -2469,13 +2632,14 @@ ], "next": [ { - "path": "/contact-details" + "path": "/positive-ari" } ] }, { "path": "/contact-details", "title": "Contact details", + "sectionForEndSummaryPages": "ContactDetails", "components": [ { "name": "heading1", @@ -2488,7 +2652,9 @@ }, { "name": "MainContactName", - "options": {}, + "options": { + "summaryTitle": "Main contact" + }, "type": "TextField", "nameHasError": false, "title": "Full name", @@ -2499,7 +2665,8 @@ { "name": "MainContactJobTitle", "options": { - "required": false + "required": false, + "summaryTitle": "Job title" }, "type": "TextField", "nameHasError": false, @@ -2511,7 +2678,9 @@ }, { "name": "MainContactPhoneNumber", - "options": {}, + "options": { + "summaryTitle": "Phone number" + }, "type": "TextField", "nameHasError": false, "title": "Phone number", @@ -2522,7 +2691,8 @@ { "name": "MainContactEmailAddress", "options": { - "exposeToContext": true + "exposeToContext": true, + "summaryTitle": "Email address" }, "type": "TextField", "nameHasError": false, @@ -2543,7 +2713,8 @@ { "name": "AltContactName", "options": { - "required": false + "required": false, + "summaryTitle": "Additional contact" }, "type": "TextField", "nameHasError": false, @@ -2555,7 +2726,8 @@ { "name": "AltContactJobTitle", "options": { - "required": false + "required": false, + "summaryTitle": "Additional contact’s job title" }, "type": "TextField", "nameHasError": false, @@ -2568,7 +2740,8 @@ { "name": "AltContactPhoneNumber", "options": { - "required": false + "required": false, + "summaryTitle": "Additional phone number" }, "type": "TextField", "nameHasError": false, @@ -2580,7 +2753,8 @@ { "name": "AltContactEmailAddress", "options": { - "required": false + "required": false, + "summaryTitle": "Additional email address" }, "type": "TextField", "nameHasError": false, @@ -2599,10 +2773,13 @@ { "path": "/service-users", "title": "Service users and staff", + "sectionForEndSummaryPages": "ServiceUsersAndStaff", "components": [ { "name": "ServiceUsersTypes", - "options": {}, + "options": { + "summaryTitle": "The majority of your service users" + }, "type": "CheckboxesField", "nameHasError": false, "title": "Select the options that best describe the majority of your service users", @@ -2614,7 +2791,9 @@ }, { "name": "ServiceUsersCurrentlyLive", - "options": {}, + "options": { + "summaryTitle": "People that live in your setting or use your service" + }, "type": "NumberField", "nameHasError": false, "schema": { @@ -2627,7 +2806,9 @@ }, { "name": "StaffNumber", - "options": {}, + "options": { + "summaryTitle": "Staff that work in your care setting or service" + }, "type": "NumberField", "schema": { "min": 0, @@ -2638,7 +2819,7 @@ }, { "name": "EmptyBeds", - "options": { "required": false }, + "options": { "required": false, "summaryTitle": "Empty beds" }, "type": "NumberField", "schema": { "min": 0, @@ -2657,17 +2838,14 @@ }, { "path": "/summary", - "controller": "./pages/summary.js", + "controller": "CustomSummaryPageController", "title": "Check your answers before sending your report", - "components": [ - { - "name": "nMOTrx", - "options": {}, - "type": "Para", - "content": "

    Setting details

    Your setting nameBelmont Care HomeChange
    Your setting postcodeTQ5 0AHChange
    Your local UKHSA health protection teamSouth West Health Protection TeamChange
    Your Care Quality Commission (CQC) location ID000001888Change
    Type of adult social care you provideResidential care homeChange

    Contact details

    Full name of contact personPat DeerfieldChange
    Job title of contact personManagerChange
    Telephone number07451300300Change
    Email addressPat@cov.comChange

    Infections you are reporting

    Acute respiratory infections you are reportingFluChange
    Number of cases of Flu you are reporting2 or moreChange
    Symptoms in 2 or more cases of Flu started within 5 days of each otherYesChange
    You think the cases of Flu could be linked by spread in your settingYesChange
    At least one case of Flu has been confirmed by a positive testYesChange

    Service users and staff

    How would you describe the majority of your service usersService users, staffChange
    Number of people that currently live in your setting or use your service27Change
    Number of staff that work in your care setting or service7Change
    Number of empty beds (optional)3Change

    Flu in your setting

    You are reporting cases or symptoms of Flu in service users or staff2Change
    Number of service users who have Flu confirmed by a test5Change
    Number of service users who have symptoms of an acute respiratory infection, but have not been tested for Flu5Change
    Number of staff members who have Flu confirmed by a test1Change
    Number of staff who have symptoms of an acute respiratory infection, but have not been tested for Flu2Change
    Date symptoms started in the first case of Flu02 August 2024Change
    Date symptoms started in the second case of Flu (optional)N/AChange
    Date symptoms started in the most recent case of Flu10 August 2024Change

    Vaccination among your staff and service users

    Number of service users who have had the flu vaccine for this current winter season (optional)20Change
    Number of staff who have had the flu vaccine for this current winter season (optional)6Change

    Infection prevention and control (IPC) and outbreak management in your setting

    How often are you monitoring staff IPC practicesWithin the last monthChange
    Issues you are currently experiencing and need support withTest kit supplyChange
    Your setting undertakes aerosol generating procedures (AGPs)YesChange
    Staff carrying out aerosol generating procedures, wear fit-tested and FFP3 masksAllChange

    Staffing

    You use agency staff or share staff with other care settingsYesChange
    Number of additional agency staff or staff shared with settings you have used during this outbreakFewer than 5Change

    Now send your report

    Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.

    By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth.

    ", - "schema": {} + "options": { + "customText": { + "insetText": "You will only see answers to questions that are relevant to your report.", + "endContent": "

    Now send your report

    Your responses will be shared with your local health protection teams. They will use your information to help you manage your situation.

    By submitting this report you confirm that the details are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information for service users or staff, for example names or dates of birth.

    " } - ], + }, "next": [] } ], @@ -3079,6 +3257,34 @@ } ], "sections": [ + { + "name": "Staffing", + "title": "Staffing" + }, + { + "name": "IPC", + "title": "Infection prevention and control (IPC) and outbreak management in your setting" + }, + { + "name": "ServiceUsersAndStaff", + "title": "Service users and staff" + }, + { + "name": "Vaccinations", + "title": "Vaccinations" + }, + { + "name": "SymptomOnset", + "title": "Symptom onset" + }, + { + "name": "ContactDetails", + "title": "Contact details" + }, + { + "name": "SettingDetails", + "title": "Setting details" + }, { "name": "AcuteInfections", "title": "Acute respiratory infections in your setting" @@ -4130,7 +4336,6 @@ ], "version": 2, "skipSummary": false, - "declaration": "
    \n

    Your responses may be shared with your local UKHSA health protection team, your local authority community infection control team, and the NHS. They will use your information to help you to manage your situation.
    \n

    By submitting this report you confirm that the details you are providing are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information, for example names or dates of birth

    \n
\n", "name": "Report an outbreak", "feedback": { "feedbackForm": true, diff --git a/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts new file mode 100644 index 0000000000..97111cb311 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts @@ -0,0 +1,503 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { feedbackReturnInfoKey, redirectTo, redirectUrl } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { + decodeFeedbackContextInfo, + FeedbackContextInfo, + RelativeUrl, +} from "../feedback"; +import config from "server/config"; +import { FeesModel } from "server/plugins/engine/models/submission"; +import { isMultipleApiKey } from "@xgovformbuilder/model"; +import { FormComponent } from "../components"; +import { SelectionControlField } from "../components/SelectionControlField"; +import { PageControllerBase } from "./PageControllerBase"; + +const DEFAULT_OPTIONS = { + customText: {}, +}; + +export class CustomSummaryPageController extends PageController { + returnUrlParameter: string; + options: any; + /** + * The controller which is used when Page["controller"] is defined as "./pages/summary.js" + */ + constructor(model, pageDef) { + super(model, pageDef); + const returnPath = `/${this.model.basePath}${this.path}`; + this.returnUrlParameter = `?returnUrl=${encodeURIComponent(returnPath)}`; + this.options = pageDef?.options ?? DEFAULT_OPTIONS; + this.options.customText ??= DEFAULT_OPTIONS.customText; + } + /** + * Returns an async function. This is called in plugin.ts when there is a GET request at `/{id}/{path*}`, + */ + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.langFromRequest(request); + + const { cacheService } = request.services([]); + const model = this.model; + + // @ts-ignore - ignoring so docs can be generated. Remove when properly typed + if (this.model.def.skipSummary) { + return this.makePostRouteHandler()(request, h); + } + const state = await cacheService.getState(request); + + const viewModel = await this.summaryViewModel(request); + + if (viewModel.endPage) { + return redirectTo( + request, + h, + `/${model.basePath}${viewModel.endPage.path}` + ); + } + + /** + * iterates through the errors. If there are errors, a user will be redirected to the page + * with the error with returnUrl=`/${model.basePath}/summary` in the URL query parameter. + */ + if (viewModel.errors) { + const errorToFix = viewModel.errors[0]; + const { path } = errorToFix; + const parts = path.split("."); + const section = parts[0]; + const property = parts.length > 1 ? parts[parts.length - 1] : null; + const iteration = parts.length === 3 ? Number(parts[1]) + 1 : null; + const pageWithError = model.pages.filter((page) => { + if (page.section && page.section.name === section) { + let propertyMatches = true; + let conditionMatches = true; + if (property) { + propertyMatches = + page.components.formItems.filter( + (item) => item.name === property + ).length > 0; + } + if ( + propertyMatches && + page.condition && + model.conditions[page.condition] + ) { + conditionMatches = model.conditions[page.condition].fn(state); + } + return propertyMatches && conditionMatches; + } + return false; + })[0]; + if (pageWithError) { + const params = { + returnUrl: redirectUrl(request, `/${model.basePath}/summary`), + num: iteration && pageWithError.repeatField ? iteration : null, + }; + return redirectTo( + request, + h, + `/${model.basePath}${pageWithError.path}`, + params + ); + } + } + + const declarationError = request.yar.flash("declarationError"); + if (declarationError.length) { + viewModel.declarationError = declarationError[0]; + } + return h.view("custom-summary", viewModel); + }; + } + + /** + * Returns an async function. This is called in plugin.ts when there is a POST request at `/{id}/{path*}`. + * If a form is incomplete, a user will be redirected to the start page. + */ + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const { payService, cacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + const summaryViewModel = new SummaryViewModel( + this.title, + model, + state, + request + ); + this.setFeedbackDetails(summaryViewModel, request); + + // redirect user to start page if there are incomplete form errors + if (summaryViewModel.result.error) { + request.logger.error( + `SummaryPage Error`, + summaryViewModel.result.error + ); + /** defaults to the first page */ + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + let startPageRedirect = redirectTo( + request, + h, + `/${model.basePath}${model.def.pages[0].path}` + ); + const startPage = model.def.startPage; + + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + if (startPage.startsWith("http")) { + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + startPageRedirect = redirectTo(request, h, startPage); + } else if (model.def.pages.find((page) => page.path === startPage)) { + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + startPageRedirect = redirectTo( + request, + h, + `/${model.basePath}${startPage}` + ); + } + + return startPageRedirect; + } + + /** + * If a form is configured with a declaration, a checkbox will be rendered with the configured declaration text. + * If the user does not agree to the declaration, the page will be rerendered with a warning. + */ + if (summaryViewModel.declaration && !summaryViewModel.skipSummary) { + const { declaration } = request.payload as { + declaration?: any; + }; + + if (!declaration) { + request.yar.flash( + "declarationError", + "You must declare to be able to submit this application" + ); + const url = request.headers.referer ?? request.path; + return redirectTo(request, h, `${url}#declaration`); + } + summaryViewModel.addDeclarationAsQuestion(); + } + + await cacheService.mergeState(request, { + outputs: summaryViewModel.outputs, + userCompletedSummary: true, + }); + + request.logger.info( + ["Webhook data", "before send", request.yar.id], + JSON.stringify(summaryViewModel.validatedWebhookData) + ); + + await cacheService.mergeState(request, { + webhookData: summaryViewModel.validatedWebhookData, + }); + + const feesModel = FeesModel(model, state); + + /** + * If a user does not need to pay, redirect them to /status + */ + if ((feesModel?.details ?? [])?.length === 0) { + return redirectTo(request, h, `/${request.params.id}/status`); + } + + const payReturnUrl = + this.model.feeOptions?.payReturnUrl ?? config.payReturnUrl; + + request.logger.info( + `payReturnUrl has been configured to ${payReturnUrl}` + ); + + const url = new URL( + `${payReturnUrl}/${request.params.id}/status` + ).toString(); + + const payStateMeta = payService.createPayStateMeta({ + feesModel: feesModel!, + payApiKey: this.payApiKey, + url, + }); + + const res = await payService.payRequestFromMeta(payStateMeta); + + // TODO:- refactor - this is repeated in applicationStatus + const payState = { + pay: { + payId: res.payment_id, + reference: res.reference, + self: res._links.self.href, + next_url: res._links.next_url.href, + returnUrl: url, + meta: payStateMeta, + }, + }; + + request.yar.set("basePath", model.basePath); + await cacheService.mergeState(request, payState); + summaryViewModel.webhookDataPaymentReference = res.reference; + await cacheService.mergeState(request, { + webhookData: summaryViewModel.validatedWebhookData, + }); + + const payRedirectUrl = payState.pay.next_url; + const { showPaymentSkippedWarningPage } = this.model.feeOptions; + + const { skipPayment } = request.payload; + if (skipPayment === "true" && showPaymentSkippedWarningPage) { + payState.pay.meta.attempts = 0; + await cacheService.mergeState(request, payState); + return h + .redirect(`/${request.params.id}/status/payment-skip-warning`) + .takeover(); + } + + await cacheService.mergeState(request, payState); + return h.redirect(payRedirectUrl); + }; + } + + async summaryViewModel(request: HapiRequest) { + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const { progress = [] } = state; + + const { relevantPages } = this.model.getRelevantPages(state); + + const rowsBySection = relevantPages.reduce((prev, page) => { + let displaySectionName; + displaySectionName = page.sectionForEndSummaryPages || page.section?.name; + + // Always use section name for state access + const stateSectionName = page.section?.name; + + const section = prev[displaySectionName] ?? []; + let sectionState = stateSectionName + ? state[stateSectionName] || {} + : state; + + const toRow = this.formItemsToRowByPage({ + page, + sectionState, + fullState: state, + }); + + // Process each form item + page.components.formItems.forEach((component) => { + const result = toRow(component); + if (Array.isArray(result)) { + // If result is an array (from nested components), add each item + section.push(...result); + } else { + // Otherwise, add the single row + section.push(result); + } + }); + + prev[displaySectionName] = section; + return prev; + }, {}); + + const summaryLists = Object.entries(rowsBySection).map( + ([section, rows]) => { + const modelSection = this.model.sections.find( + (mSection) => mSection.name === section + ); + + return { + sectionTitle: !modelSection?.hideTitle ? modelSection?.title : "", + section, + rows, + }; + } + ); + + return { + page: this, + pageTitle: this.title, + sectionTitle: this.section?.title, + backLink: progress[progress.length - 1] ?? this.backLinkFallback, + name: this.model.name, + summaryLists, + showTitle: true, + customText: this.options.customText, + }; + } + + setFeedbackDetails(viewModel: SummaryViewModel, request: HapiRequest) { + const feedbackContextInfo = this.getFeedbackContextInfo(request); + + if (feedbackContextInfo) { + // set the form name to the source form name if this is a feedback form + viewModel.name = feedbackContextInfo.formTitle; + } + + // setting the feedbackLink to undefined here for feedback forms prevents the feedback link from being shown + viewModel.feedbackLink = this.feedbackUrlFromRequest(request); + } + + getFeedbackContextInfo(request: HapiRequest) { + if (this.model.def.feedback?.feedbackForm) { + if (request.url.searchParams.get(feedbackReturnInfoKey)) { + return decodeFeedbackContextInfo( + request.url.searchParams.get(feedbackReturnInfoKey) + ); + } + } + } + + feedbackUrlFromRequest(request: HapiRequest) { + if (this.model.def.feedback?.url) { + let feedbackLink = new RelativeUrl(this.model.def.feedback.url); + const returnInfo = new FeedbackContextInfo( + this.model.name, + "Summary", + `${request.url.pathname}${request.url.search}` + ); + feedbackLink.setParam(feedbackReturnInfoKey, returnInfo.toString()); + return feedbackLink.toString(); + } + + return undefined; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } + + formItemsToRowByPage({ + page, + sectionState, + fullState, + }: { + page: PageControllerBase; + sectionState: { [key: string]: any }; + fullState: { [key: string]: any }; + }) { + const pagePath = `/${page.model.basePath}${page.path}`; + const returnPath = `${pagePath}${this.returnUrlParameter}`; + const model = this.model; + + // Helper function to process components recursively + const processComponent = ( + component: FormComponent, + parentComponent?: FormComponent + ): any[] => { + const rows = []; + + // Process the current component if it has a name (is a form field) + if (component.name) { + // Get initial display value + let valueText = component.getDisplayStringFromState(sectionState); + + if ( + component.type === "FileUploadField" && + model.showFilenamesOnSummaryPage + ) { + valueText = + fullState.originalFilenames?.[component.name]?.originalFilename; + } + + const alternateValue = this.findDisplayValue(component, valueText); + if (alternateValue) { + valueText = alternateValue; + } + + // Use summaryTitle if available from options, otherwise fall back to title + const displayTitle = component.options?.summaryTitle ?? component.title; + + rows.push({ + key: { + text: displayTitle, + }, + value: { + text: valueText || "Not supplied", + }, + actions: { + items: [ + { + text: "Change", + visuallyHiddenText: displayTitle, + href: returnPath, + }, + ], + }, + }); + } + + // Handle SelectionControlField conditionally revealed components + if (component instanceof SelectionControlField && component.items) { + // Find selected items + const selectedValue = sectionState[component.name]; + const selectedValues = Array.isArray(selectedValue) + ? selectedValue + : [selectedValue]; + + // Process conditionally revealed components for selected items + component.items.forEach((item) => { + if ( + item.hasConditionallyRevealedComponents && + selectedValues.includes(item.value) + ) { + // Process all components in the conditionally revealed section + item.conditionallyRevealedComponents.items.forEach( + (conditionalComponent) => { + // For nested components, check if they have their own summaryTitle + const nestedRows = processComponent( + conditionalComponent, + component + ); + + rows.push(...nestedRows); + } + ); + } + }); + } + + return rows; + }; + + return (component: FormComponent) => { + const result = processComponent(component); + return result.length === 1 ? result[0] : result; + }; + } + + findDisplayValue( + component: FormComponent, + value: string + ): string | undefined { + // Check if the component has items list + if (component.items && Array.isArray(component.items)) { + // Find the item where the text or value matches the input value + const matchedItem = component.items.find( + (item) => item.text === value || item.value === value + ); + + // Return value2 if it exists, otherwise return undefined + return matchedItem?.checkpointDisplayValue || matchedItem?.text; + } + + // If no items list or no match found, return undefined + return undefined; + } + + get payApiKey(): string { + const modelDef = this.model.def; + const payApiKey = modelDef.feeOptions?.payApiKey ?? def.payApiKey; + + if (isMultipleApiKey(payApiKey)) { + return payApiKey[config.apiEnv] ?? payApiKey.test ?? payApiKey.production; + } + return payApiKey; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 93db0aadeb..a270ac34fe 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -56,6 +56,7 @@ export class PageControllerBase { repeatField: any; // TODO section: any; // TODO sectionForExitJourneySummaryPages: any; + sectionForEndSummaryPages: any; sectionForMultiSummaryPages: any; sidebarContent: any; components: ComponentCollection; @@ -90,6 +91,7 @@ export class PageControllerBase { this.sectionForExitJourneySummaryPages = pageDef.sectionForExitJourneySummaryPages; this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; + this.sectionForEndSummaryPages = pageDef.sectionForEndSummaryPages; this.sidebarContent = pageDef.sidebarContent; // Components collection diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index f9ea90c39f..2a3209869a 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -15,6 +15,7 @@ import { CheckpointSummaryPageController } from "src/server/plugins/engine/pageC import { ResubmitPageController } from "./ResubmitPageController"; import { MagicLinkController } from "./MagicLinkController"; import { MagicLinkStartPageController } from "./MagicLinkStartPageController"; +import { CustomSummaryPageController } from "./CustomSummaryPageController"; const PageControllers = { DobPageController, @@ -31,6 +32,7 @@ const PageControllers = { ResubmitPageController, MagicLinkController, MagicLinkStartPageController, + CustomSummaryPageController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index 3519039eb2..f9a3400e75 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -10,3 +10,4 @@ export { CheckpointSummaryPageController } from "./CheckpointSummaryPageControll export { ResubmitPageController } from "./ResubmitPageController"; export { MagicLinkController } from "./MagicLinkController"; export { MagicLinkStartPageController } from "./MagicLinkStartPageController"; +export { CustomSummaryPageController } from "./CustomSummaryPageController"; diff --git a/runner/src/server/views/custom-summary.html b/runner/src/server/views/custom-summary.html new file mode 100644 index 0000000000..75a1e7ee3b --- /dev/null +++ b/runner/src/server/views/custom-summary.html @@ -0,0 +1,141 @@ +{% from "components/checkboxes/macro.njk" import govukCheckboxes %} +{% from "summary-list/macro.njk" import govukSummaryList %} +{% extends 'layout.html' %} + +{% block content %} +
+
+
+

+ {% if callback and callback.title %} + {{ callback.title }} + {% else %} + {{ pageTitle }} + {% endif %} +

+ + {% if callback and callback.message %} +
+ {{ callback.message }} +
+ {% endif %} + + {% if customText.insetText %} +
+ {{ customText.insetText | safe }} +
+ {% endif %} + + {% if callback and callback.htmlMessage %} + {{ callback.htmlMessage | safe }} + {% endif %} + + {% for detail in details %} +
+

{{ detail.title }}

+
+ {% set rows = [] %} + {% for item in detail.items %} + {% set changeUrl = item.url %} + {% if not item.immutable %} + {% set actions = [{ + text: "Change", + href: changeUrl, + visuallyHiddenText: item.label + }] %} + {% else %} + {% set actions = [] %} + {% endif %} + + {% set rows = (rows.push({ + key: { + text: item.label + }, + value: { + text: item.value + }, + actions: { + items: actions + } + }), rows) %} + {% endfor %} + + {{ govukSummaryList({ + rows: rows + }) }} +
+
+ {% endfor %} + + {% for list in summaryLists %} +
+

+ {{list.sectionTitle}} +

+
+ {{ govukSummaryList(list) }} +
+
+ {% endfor %} + + {% if fees and fees.details|length %} +

Fees

+
    + {% for fee in fees.details %} +
  • {{ fee.description }}: £{{fee.amount / 100}}
  • + {% endfor %} +
+

Total cost: £{{fees.total / 100 }}

+

You should not be charged an exchange fee if you pay with a UK credit or debit card.

+ {% endif %} + + {% if customText.endContent %} + {{ customText.endContent | safe }} + {% endif %} + + {% if not result.error %} +
+ + + {%if declaration %} +

Declaration

+ {{ declaration | safe }} +
+ {% if declarationError %} + + Error: {{declarationError}} + + {% endif %} +
+
+ + +
+
+
+ {% endif %} + + + + {% if showPaymentSkippedWarningPage %} +
+ +
+ {% endif %} + +
+ {% endif %} +
+
+
+{% endblock %} From 3b47caee2ab2887d11bd57cf5adfb923c4fd540d Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Mon, 24 Mar 2025 10:20:26 +0000 Subject: [PATCH 186/403] messy merge --- runner/src/server/forms/ReportAnOutbreak.json | 66 +++++-------------- 1 file changed, 17 insertions(+), 49 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b7d5091cac..d7c6ca0e95 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -388,9 +388,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: with symptoms, but not tested" - }, - "options": { + "summaryTitle": "Service users: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -482,9 +480,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: confirmed positive adenovirus test results" - }, - "options": { + "summaryTitle": "Service users: confirmed positive adenovirus test results", "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for adenovirus", "number.max": "The number of service users that have tested positive for adenovirus must be between 0 and 999", @@ -559,9 +555,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive adenovirus test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive adenovirus test results", "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for adenovirus", "number.max": "The number of staff that have tested positive for adenovirus must be between 0 and 999", @@ -632,9 +626,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: confirmed positive human Metapneumovirus (hMPV) test results" - }, - "options": { + "summaryTitle": "Service users: confirmed positive human Metapneumovirus (hMPV) test results", "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for human Metapneumovirus (hMPV)", "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999", @@ -701,9 +693,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive human Metapneumovirus (hMPV) test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive human Metapneumovirus (hMPV) test results", "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for human Metapneumovirus (hMPV)", "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999", @@ -766,9 +756,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: confirmed positive parainfluenza test results" - }, - "options": { + "summaryTitle": "Service users: confirmed positive parainfluenza test results", "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for parainfluenza", "number.max": "The number of service users that have tested positive for parainfluenza must be between 0 and 999", @@ -827,9 +815,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive parainfluenza test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive parainfluenza test results", "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for parainfluenza", "number.max": "The number of staff that have tested positive for parainfluenza must be between 0 and 999", @@ -884,9 +870,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: confirmed positive Respiratory Syncytial Virus (RSV) test results" - }, - "options": { + "summaryTitle": "Service users: confirmed positive Respiratory Syncytial Virus (RSV) test results", "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for Respiratory Syncytial Virus (RSV)", "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999", @@ -937,9 +921,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive Respiratory Syncytial Virus (RSV) test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive Respiratory Syncytial Virus (RSV) test results", "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for Respiratory Syncytial Virus (RSV)", "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999", @@ -986,9 +968,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: confirmed positive rhinovirus test results" - }, - "options": { + "summaryTitle": "Service users: confirmed positive rhinovirus test results", "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for rhinovirus", "number.max": "The number of service users that have tested positive for rhinovirus must be between 0 and 999", @@ -1031,9 +1011,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive rhinovirus test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive rhinovirus test results", "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for rhinovirus", "number.max": "The number of staff that have tested positive for rhinovirus must be between 0 and 999", @@ -1072,9 +1050,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: confirmed positive other acute respiratory infection test results" - }, - "options": { + "summaryTitle": "Service users: confirmed positive other acute respiratory infection test results", "customValidationMessages": { "number.base": "Enter the number of service users that have tested positive for an other acute respiratory infection", "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be between 0 and 999", @@ -1109,9 +1085,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive other acute respiratory infection test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive other acute respiratory infection test results", "customValidationMessages": { "number.base": "Enter the number of staff that have tested positive for an other acute respiratory infection", "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be between 0 and 999", @@ -1142,9 +1116,7 @@ "max": 999 }, "options": { - "summaryTitle": "Service users: with symptoms, but not tested" - }, - "options": { + "summaryTitle": "Service users: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of service users that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -1219,9 +1191,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive flu test results" - }, - "options": { + "summaryTitle": "Staff: confirmed positive flu test results", "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -1287,9 +1257,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: with symptoms, but not tested" - }, - "options": { + "summaryTitle": "Staff: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", @@ -2790,7 +2758,7 @@ "name": "AltContactEmailAddress", "options": { "required": false, - "summaryTitle": "Additional email address", + "summaryTitle": "Additional email address", "customValidationMessages": { "string.pattern.base": "Enter an additional contact's email address in the correct format, like name@example.com" } From 7de90a067cf61825d856369cd68ddb37b35ba3d9 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 25 Mar 2025 09:54:28 +0000 Subject: [PATCH 187/403] CAR-1370 Single ARI question content fix (#308) --- runner/src/server/forms/ReportAnOutbreak.json | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d7c6ca0e95..4900eb5ac2 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -116,7 +116,7 @@ }, { "path": "/which-ari", - "title": "Which acute respiratory infections do you have a positive test result for?", + "title": "Which acute respiratory infection do you have a positive test result for?", "sectionForExitJourneySummaryPages": "AcuteInfections", "sectionForMultiSummaryPages": "InfectionsInYourSetting", "sectionForEndSummaryPages": "InfectionsInYourSetting", @@ -131,7 +131,7 @@ }, "type": "RadiosField", "nameHasError": false, - "title": "Which acute respiratory infections do you have a positive test result for? ", + "title": "Which acute respiratory infection do you have a positive test result for? ", "list": "InfectionTypes", "values": { "type": "listRef" @@ -2418,6 +2418,7 @@ "components": [ { "name": "FFP3Masks", + "options": { "summaryTitle": "Staff wear fit-tested FFP3 masks" }, @@ -2920,8 +2921,8 @@ "value": "Flu" }, { - "text": "Any other acute respiratory infections", - "value": "Any other acute respiratory infections", + "text": "Any other acute respiratory infection", + "value": "Any other acute respiratory infection", "checkpointDisplayValue": "Other acute respiratory infection (not COVID-19 or flu)", "description": "including viruses such as respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus" } @@ -3841,8 +3842,8 @@ "operator": "contains", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Any other acute respiratory infection", + "display": "Any other acute respiratory infection" } }, { @@ -3938,7 +3939,7 @@ "field": { "name": "WhichARI", "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Which acute respiratory infection do you have a positive test result for?" }, "operator": "is", "value": { @@ -3960,7 +3961,7 @@ "field": { "name": "WhichARI", "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Which acute respiratory infection do you have a positive test result for?" }, "operator": "is", "value": { @@ -3982,13 +3983,13 @@ "field": { "name": "WhichARI", "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Which acute respiratory infection do you have a positive test result for?" }, "operator": "is", "value": { "type": "Value", - "value": "Any other acute respiratory infections", - "display": "Any other acute respiratory infections" + "value": "Any other acute respiratory infection", + "display": "Any other acute respiratory infection" } } ] @@ -4040,7 +4041,7 @@ "field": { "name": "WhichARI", "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Which acute respiratory infection do you have a positive test result for?" }, "operator": "is", "value": { @@ -4076,7 +4077,7 @@ "field": { "name": "WhichARI", "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Which acute respiratory infection do you have a positive test result for?" }, "operator": "is", "value": { @@ -4112,7 +4113,7 @@ "field": { "name": "WhichARI", "type": "RadiosField", - "display": "Which acute respiratory infections do you have a positive test result for?" + "display": "Which acute respiratory infection do you have a positive test result for?" }, "operator": "is", "value": { From add6aa3ad6ad6106d385c5ac18e49518b6807007 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 25 Mar 2025 12:56:22 +0000 Subject: [PATCH 188/403] fix flu route --- runner/src/server/forms/ReportAnOutbreak.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 4900eb5ac2..c7c01d0d5f 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -4139,6 +4139,42 @@ ] } }, + { + "displayName": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "value": { + "name": "WhichARI:Flu&ARIServiceOrStaff:Staff", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "RadiosField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + }, + { + "coordinator": "and", + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "TwoOrMoreCasesNotCovidFlu:YES", From 7fa2d058875d1734720f2f59ab78c82aba025a84 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Tue, 25 Mar 2025 17:19:24 +0000 Subject: [PATCH 189/403] remove duplicate route --- runner/src/server/forms/ReportAnOutbreak.json | 170 +++--------------- 1 file changed, 23 insertions(+), 147 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index c7c01d0d5f..a84c7e8483 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -434,10 +434,6 @@ } ], "next": [ - { - "condition": "OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-confirmed" - }, { "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-adenovirus" @@ -1242,120 +1238,6 @@ } ] }, - { - "path": "/staff-ari-confirmed", - "title": "Staff: number of other cases", - "sectionForEndSummaryPages": "InfectionsInYourSetting", - "components": [ - { - "name": "StaffSymptomsNotTested", - "type": "NumberField", - "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", - "hint": "Include those who are currently in hospital
If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": { - "summaryTitle": "Staff: with symptoms, but not tested", - "customValidationMessages": { - "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", - "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", - "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" - } - } - }, - { - "name": "StaffTestedCovid", - "type": "NumberField", - "title": "How many staff have been tested for COVID-19 and had a negative test result?", - "hint": "If none, enter 0", - "schema": { - "min": 0, - "max": 999 - }, - "options": { - "required": false, - "summaryTitle": "Staff: negative COVID-19 test results", - "customValidationMessages": { - "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", - "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" - } - } - }, - { - "name": "StaffTestedFlu", - "type": "NumberField", - "title": "How many staff have been tested for flu and had a negative test result?", - "hint": "If none, enter 0", - "options": { - "required": false, - "summaryTitle": "Staff: negative flu test results", - "customValidationMessages": { - "number.max": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999", - "number.min": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999" - } - }, - "schema": { - "min": 0, - "max": 999 - } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, - { - "path": "/severity-of-illness" - } - ] - }, { "path": "/cases-of-flu", "title": "How many cases are you reporting?", @@ -1877,7 +1759,7 @@ }, { "path": "/staff-ari-cases", - "title": "Staff: number of cases", + "title": "Staff: number of other cases", "components": [ { "type": "Para", @@ -1889,11 +1771,17 @@ "title": "How many staff have symptoms of an acute respiratory infection, but have not been tested for any infection?", "hint": "Include those who are currently in hospital
If none, enter 0", "options": { - "required": true + "required": true, + "summaryTitle": "Staff: with symptoms, but not tested", + "customValidationMessages": { + "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", + "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", + "number.min": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999" + } }, "schema": { "min": 0, - "max": 200 + "max": 999 } }, { @@ -1902,11 +1790,16 @@ "title": "How many staff have been tested for COVID-19 and had a negative test result?", "hint": "If none, enter 0", "options": { - "required": false + "required": false, + "summaryTitle": "Staff: negative COVID-19 test results", + "customValidationMessages": { + "number.max": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for COVID-19 and had a negative test result must be between 0 and 999" + } }, "schema": { "min": 0, - "max": 200 + "max": 999 } }, { @@ -1915,11 +1808,16 @@ "title": "How many staff have been tested for flu and had a negative test result?", "hint": "If none, enter 0", "options": { - "required": false + "required": false, + "summaryTitle": "Staff: negative flu test results", + "customValidationMessages": { + "number.max": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999", + "number.min": "The number of staff that have been tested for flu and had a negative test result must be between 0 and 999" + } }, "schema": { "min": 0, - "max": 200 + "max": 999 } } ], @@ -3409,28 +3307,6 @@ ] } }, - { - "displayName": "OtherARIServiceOrStaff:Staff", - "name": "OtherARIServiceOrStaff:Staff", - "value": { - "name": "OtherARIServiceOrStaff:Staff", - "conditions": [ - { - "field": { - "name": "OtherARIServiceOrStaff", - "type": "CheckboxesField", - "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" - }, - "operator": "contains", - "value": { - "type": "Value", - "value": "Staff", - "display": "Staff" - } - } - ] - } - }, { "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", From 6b5fb6f020fea7cd9e99ecfaa4242ee5a858bc89 Mon Sep 17 00:00:00 2001 From: Etasha-ukhsa Date: Tue, 25 Mar 2025 19:10:12 +0000 Subject: [PATCH 190/403] Updating URL for new api gw --- .../src/server/forms/TestEndpointConfig.json | 34 +++++-------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/runner/src/server/forms/TestEndpointConfig.json b/runner/src/server/forms/TestEndpointConfig.json index 9d5b538007..450f0f6646 100644 --- a/runner/src/server/forms/TestEndpointConfig.json +++ b/runner/src/server/forms/TestEndpointConfig.json @@ -1,7 +1,5 @@ { - "metadata": { - - }, + "metadata": {}, "startPage": "/are-you-human", "pages": [ { @@ -10,15 +8,11 @@ "components": [ { "name": "lowQbd", - "options": { - - }, + "options": {}, "type": "RadiosField", "title": "Are you human", "list": "WLIOaK", - "schema": { - - } + "schema": {} } ], "next": [ @@ -33,9 +27,7 @@ "components": [ { "name": "IndividualsName", - "options": { - - }, + "options": {}, "type": "TextField", "title": "Your name", "nameHasError": false, @@ -45,14 +37,10 @@ }, { "name": "wHFRap", - "options": { - - }, + "options": {}, "type": "TelephoneNumberField", "title": "Telephone", - "schema": { - - } + "schema": {} }, { "name": "Address", @@ -62,9 +50,7 @@ }, "type": "UkAddressField", "title": "Address", - "schema": { - - }, + "schema": {}, "nameHasError": false } ], @@ -108,7 +94,7 @@ "title": "SRS Endpoint", "type": "webhook", "outputConfiguration": { - "url": "https://6m548a7wv4.execute-api.eu-west-2.amazonaws.com/v1/forms", + "url": "https://060nw3t077.execute-api.eu-west-2.amazonaws.com/v1/forms", "allowRetry": true, "sendAdditionalPayMetadata": false } @@ -126,8 +112,6 @@ "feedbackForm": false, "url": "" }, - "phaseBanner": { - - }, + "phaseBanner": {}, "declaration": "" } From f82e73116ac6528e7af3dcdee0236582300f7213 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Thu, 27 Mar 2025 17:01:45 +0000 Subject: [PATCH 191/403] added sectionforendsummarypages --- runner/src/server/forms/ReportAnOutbreak.json | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index a84c7e8483..9988f6b0a3 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1760,6 +1760,7 @@ { "path": "/staff-ari-cases", "title": "Staff: number of other cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ { "type": "Para", From db15bc61b67b302367b3c6ec6c642d01e4a75508 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 28 Mar 2025 10:04:44 +0000 Subject: [PATCH 192/403] fix error type --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index b796415bcb..fe014547a8 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2657,7 +2657,7 @@ "required": false, "summaryTitle": "Additional contact’s job title", "customValidationMessages": { - "string.pattern.base": "Additional contact's job title must be 99 characters or less" + "string.max": "Additional contact's job title must be 99 characters or less" } }, "schema": { From 30aad7eec868db76b313ea71bc2ee2e3f49caec1 Mon Sep 17 00:00:00 2001 From: Masuk Kazi Date: Fri, 28 Mar 2025 10:16:13 +0000 Subject: [PATCH 193/403] fix missing hint --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index fe014547a8..d052f579e0 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -154,6 +154,10 @@ "sectionForMultiSummaryPages": "Covid19InYourSetting", "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ + { + "type": "Para", + "content": "

Include cases confirmed by a test and people with symptoms of acute respiratory infections, including chest infections

" + }, { "name": "TwoOrMoreCovid", "type": "RadiosField", From ce04af52dd2ec0a662cdc98cbc36df693506ed36 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 28 Mar 2025 11:32:36 +0000 Subject: [PATCH 194/403] CAR-601 & CAR-602 - Date validation for symptom onset questions (#312) --- runner/src/server/forms/ReportAnOutbreak.json | 37 +++- .../engine/components/DatePartsField.ts | 36 +++- .../DateComparisonPageController.ts | 173 ++++++++++++++++++ .../plugins/engine/pageControllers/helpers.ts | 2 + .../plugins/engine/pageControllers/index.ts | 1 + 5 files changed, 242 insertions(+), 7 deletions(-) create mode 100644 runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d052f579e0..867f39038d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1483,6 +1483,10 @@ "path": "/symptom-onset-flu", "title": "Symptom onset for the case of flu", "sectionForEndSummaryPages": "SymptomOnset", + "controller": "DateComparisonPageController", + "options": { + "firstDateComponent": "FluSymptomOnsetDate" + }, "components": [ { "name": "intro", @@ -1491,9 +1495,16 @@ }, { "name": "FluSymptomOnsetDate", + "errorLabel": "The date symptoms started", "options": { "maxDaysInFuture": "0", - "summaryTitle": "Symptoms started" + "summaryTitle": "Symptoms started", + "customValidationMessages": { + "dayMonthYear": "Enter the date symptoms started", + "nonNumeric": "The date symptoms started must be a real date", + "date.max": "The date symptoms started must be in the past", + "date.base": "The date symptoms started must be a real date" + } }, "type": "DatePartsField", "nameHasError": false, @@ -2296,6 +2307,11 @@ "path": "/symptom-onset", "title": "Symptom onset of cases in this outbreak", "sectionForEndSummaryPages": "SymptomOnset", + "controller": "DateComparisonPageController", + "options": { + "firstDateComponent": "FirstCaseOnset", + "secondDateComponent": "MostRecentCaseOnset" + }, "components": [ { "name": "introText1", @@ -2313,22 +2329,37 @@ "name": "FirstCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the first case in this outbreak?", + "errorLabel": "The date that symptoms started in the first case of this outbreak", "hint": "For example, 31 3 2024", "options": { "summaryTitle": "First case: symptoms started", "required": true, - "maxDaysInFuture": "0" + "maxDaysInFuture": 0, + "customValidationMessages": { + "nonNumeric": "The date symptoms started in the first case of this outbreak must be a real date", + "dayMonthYear": "Enter the date symptoms started in the first case of this outbreak", + "date.max": "The date symptoms started in the first case of this outbreak must be in the past", + "date.base": "The date symptoms started in the first case of this outbreak must be a real date" + } } }, { "name": "MostRecentCaseOnset", "type": "DatePartsField", + "errorLabel": "The date symptoms started in the most recent case of this outbreak", "title": "When did symptoms start in the most recent case in this outbreak?", "hint": "For example, 31 3 2024", "options": { "summaryTitle": "Most recent case: symptoms started", "required": true, - "maxDaysInFuture": "0" + "maxDaysInFuture": 0, + "customValidationMessages": { + "dayMonthYear": "Enter the date symptoms started in the most recent case of this outbreak", + "nonNumeric": "The date symptoms started in the most recent case of this outbreak must be a real date", + "date.max": "The date symptoms started in the most recent case of this outbreak must be in the past", + "date.base": "The date symptoms started in the most recent case of this outbreak must be a real date", + "date.min": "The date symptoms started in the most recent case of this outbreak must be the same as or after the first case" + } } } ], diff --git a/runner/src/server/plugins/engine/components/DatePartsField.ts b/runner/src/server/plugins/engine/components/DatePartsField.ts index 23644cdcde..48450c7060 100644 --- a/runner/src/server/plugins/engine/components/DatePartsField.ts +++ b/runner/src/server/plugins/engine/components/DatePartsField.ts @@ -1,4 +1,4 @@ -import { add, sub, parseISO, format } from "date-fns"; +import { parseISO, format } from "date-fns"; import { InputFieldsComponentsDef } from "@xgovformbuilder/model"; import { FormComponent } from "./FormComponent"; @@ -39,7 +39,9 @@ export class DatePartsField extends FormComponent { customValidationMessages: { "number.min": "{{#label}} must be between 1 and 31", "number.max": "{{#label}} must be between 1 and 31", - "number.base": `${def.title} must include a day`, + "number.base": `${ + def.errorLabel ?? def.title + } must include a day`, }, }, hint: "", @@ -56,7 +58,9 @@ export class DatePartsField extends FormComponent { customValidationMessages: { "number.min": "{{#label}} must be between 1 and 12", "number.max": "{{#label}} must be between 1 and 12", - "number.base": `${def.title} must include a month`, + "number.base": `${ + def.errorLabel ?? def.title + } must include a month`, }, }, hint: "", @@ -71,7 +75,9 @@ export class DatePartsField extends FormComponent { optionalText: optionalText, classes: "govuk-input--width-4", customValidationMessages: { - "number.base": `${def.title} must include a year`, + "number.base": `${ + def.errorLabel ?? def.title + } must include a year`, }, }, hint: "", @@ -95,6 +101,7 @@ export class DatePartsField extends FormComponent { schema = schema.custom( helpers.getCustomDateValidator(maxDaysInPast, maxDaysInFuture) ); + if (options.customValidationMessages) { schema = schema.messages(options.customValidationMessages); } @@ -118,6 +125,27 @@ export class DatePartsField extends FormComponent { getStateValueFromValidForm(payload: FormPayload) { const name = this.name; + const day = payload[`${name}__day`]; + const month = payload[`${name}__month`]; + const year = payload[`${name}__year`]; + + // If any of the date parts are missing, return null + if (!day || !month || !year) { + return null; + } + + // Convert to Date object (month is 0-indexed) + const date = new Date(year, month - 1, day); + + // Check if the reconstructed date matches the input + if ( + date.getFullYear() !== year || + date.getMonth() !== month - 1 || // Convert back to 1-indexed + date.getDate() !== day + ) { + console.error("Invalid date detected:", { day, month, year }); + return null; // Invalid date + } return payload[`${name}__year`] ? new Date( diff --git a/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts b/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts new file mode 100644 index 0000000000..322bb38819 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts @@ -0,0 +1,173 @@ +import joi from "joi"; +import { PageController } from "./PageController"; +import { format, parseISO } from "date-fns"; +import { FormSubmissionErrors } from "../types"; + +/** + * DateComparisonPageController validates that: + * 1. Dates are not in the future + * 2. Most recent case onset date is not before the first case onset date + */ + +export class DateComparisonPageController extends PageController { + firstDateComponent: any; + secondDateComponent: any; + firstDateName: string; + secondDateName: string; + + constructor(model: any = {}, pageDef: any = {}) { + super(model, pageDef); + + this.firstDateName = pageDef?.options?.firstDateComponent || ""; + this.secondDateName = pageDef?.options?.secondDateComponent || ""; + + this.firstDateComponent = + pageDef?.components?.find( + (component) => component.name === this.firstDateName + ) || null; + + this.secondDateComponent = + pageDef?.components?.find( + (component) => component.name === this.secondDateName + ) || null; + + this.stateSchema = this.stateSchema.append({ + [this.firstDateName]: joi + .date() + .required() + .max("now") // Prevents dates in the future + .messages({ + ...this.firstDateComponent?.options?.customValidationMessages, + }), + }); + + if (this.secondDateComponent) { + this.stateSchema = this.stateSchema.append({ + [this.secondDateName]: joi + .date() + .required() + .min(joi.ref(this.firstDateName)) // Ensures most recent date is not before first date + .max("now") // Prevents dates in the future + .messages({ + ...this.secondDateComponent?.options?.customValidationMessages, + }), + }); + } + } + + getErrors(validationResult): FormSubmissionErrors | undefined { + if (!validationResult?.error) { + return undefined; + } + const errors = validationResult.error.details; + const formItems = this.components.formItems; + + const formatDateMessage = (message: string) => { + return message.replace(isoRegex, (text) => + format(parseISO(text), "d MMMM yyyy") + ); + }; + + const findTitle = (fieldName: string) => { + return ( + formItems.find((item) => item.name === fieldName)?.title || + "Title not found" + ); + }; + const isoRegex = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; + + const errorList = errors.map((err) => { + let name = err.path.join("__"); + let title = findTitle(name.split("__")[0]); + let text = formatDateMessage(err.message); + + return { + path: err.path.join("."), + href: `#${name}`, + name: name, + title: title, + text: text, + type: err.type, + value: err.context.value, + }; + }); + + const addCustomErrors = (errorList) => { + const errorMap = {}; + + // Populate the errorMap with the base name and suffix + errorList.forEach((err) => { + const baseName = err.name.split("__")[0]; + const suffix = err.name.match(/__(day|month|year)$/)?.[0]; + + if (!errorMap[baseName]) { + errorMap[baseName] = { + baseName: baseName, + day: false, + month: false, + year: false, + errors: [], + name: err.name, + }; + } + + if (suffix === "__day") errorMap[baseName].day = true; + if (suffix === "__month") errorMap[baseName].month = true; + if (suffix === "__year") errorMap[baseName].year = true; + + errorMap[baseName].errors.push(err); + }); + + // Process the errorMap to set text based on combinations and add to finalErrors + const finalErrors: any = []; + Object.values(errorMap).forEach((e: any) => { + if (e.day && e.year && e.month) { + e.errors.forEach((err) => { + if (e.name.includes(this.firstDateName)) { + err.text = this.firstDateComponent?.options?.customValidationMessages?.dayMonthYear; + } + if (this.secondDateComponent) { + if (e.name.includes(this.secondDateName)) { + err.text = this.secondDateComponent?.options?.customValidationMessages?.dayMonthYear; + } + } + }); + } + + // New condition to handle number.base errors + const numberBaseErrors = e.errors.filter( + (err) => + err.type === "number.base" && + err.value !== undefined && + err.value !== "" + ); + + if (numberBaseErrors.length > 0) { + numberBaseErrors.forEach((err) => { + if (e.name.includes(this.firstDateName)) { + err.text = this.firstDateComponent?.options?.customValidationMessages?.nonNumeric; + } + if (e.name.includes(this.secondDateName)) { + err.text = this.secondDateComponent?.options?.customValidationMessages?.nonNumeric; + } + err.type = "custom.numberBase"; + }); + } + + finalErrors.push(...e.errors); + }); + + return finalErrors; + }; + + const processedErrorList = addCustomErrors(errorList); + + return { + titleText: this.errorSummaryTitle, + errorList: processedErrorList.filter( + ({ text }, index) => + index === errorList.findIndex((err) => err.text === text) + ), + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index 2a3209869a..309c2b0bd8 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -16,6 +16,7 @@ import { ResubmitPageController } from "./ResubmitPageController"; import { MagicLinkController } from "./MagicLinkController"; import { MagicLinkStartPageController } from "./MagicLinkStartPageController"; import { CustomSummaryPageController } from "./CustomSummaryPageController"; +import { DateComparisonPageController } from "./DateComparisonPageController"; const PageControllers = { DobPageController, @@ -33,6 +34,7 @@ const PageControllers = { MagicLinkController, MagicLinkStartPageController, CustomSummaryPageController, + DateComparisonPageController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index f9a3400e75..9ae47f3a60 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -11,3 +11,4 @@ export { ResubmitPageController } from "./ResubmitPageController"; export { MagicLinkController } from "./MagicLinkController"; export { MagicLinkStartPageController } from "./MagicLinkStartPageController"; export { CustomSummaryPageController } from "./CustomSummaryPageController"; +export { DateComparisonPageController } from "./DateComparisonPageController"; From 0b825129c3978d563a3c617b7d136fa0ecf83171 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 1 Apr 2025 13:29:09 +0100 Subject: [PATCH 195/403] CAR-1546 changes to other ARI flow (#316) --- runner/src/server/forms/ReportAnOutbreak.json | 1041 +++++++++++++---- 1 file changed, 803 insertions(+), 238 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 867f39038d..9d62546bc2 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -380,11 +380,7 @@ ], "next": [ { - "condition": "WhichARI:Other", "path": "/other-ari-confirmed-cases-setting" - }, - { - "path": "/ari-confirmed-cases-setting" } ] }, @@ -451,28 +447,11 @@ ], "next": [ { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" + "condition": "OtherARIServiceOrStaff:Both", + "path": "/staff-ari-confirmed" }, { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" + "path": "/severity-of-illness" } ] }, @@ -502,50 +481,26 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, { "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-hmpv" }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-parainfluenza" }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rsv" }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-other" }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, { "path": "/severity-of-illness" } @@ -577,48 +532,97 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-hmpv" - }, { "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-hmpv" }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" }, { - "path": "/severity-of-illness" + "path": "/staff-ari-confirmed" + } + ] + }, + { + "path": "/both-ari-adenovirus", + "title": "Number of adenovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "ServiceUsersAdenovirus", + "type": "NumberField", + "title": "How many service users have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: confirmed positive adenovirus test results", + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for adenovirus", + "number.max": "The number of service users that have tested positive for adenovirus must be between 0 and 999", + "number.min": "The number of service users that have tested positive for adenovirus must be between 0 and 999" + } + } + }, + { + "name": "StaffAdenovirus", + "type": "NumberField", + "title": "How many staff have tested positive for adenovirus?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: confirmed positive adenovirus test results", + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for adenovirus", + "number.max": "The number of staff that have tested positive for adenovirus must be between 0 and 999", + "number.min": "The number of staff that have tested positive for adenovirus must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Both", + "path": "/both-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Both", + "path": "/both-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "path": "/both-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -648,44 +652,24 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-parainfluenza" }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rsv" }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-other" }, { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, - { - "path": "/severity-of-illness" + "path": "/service-users-ari-confirmed" } ] }, @@ -715,40 +699,89 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-parainfluenza" - }, { "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-parainfluenza" }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" }, { - "path": "/severity-of-illness" + "path": "/staff-ari-confirmed" + } + ] + }, + { + "path": "/both-ari-hmpv", + "title": "Number of human Metapneumovirus (hMPV) cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "ServiceUsersHmpv", + "type": "NumberField", + "title": "How many service users have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: confirmed positive human Metapneumovirus (hMPV) test results", + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for human Metapneumovirus (hMPV)", + "number.max": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999", + "number.min": "The number of service users that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999" + } + } + }, + { + "name": "StaffHmpv", + "type": "NumberField", + "title": "How many staff have tested positive for human Metapneumovirus (hMPV)?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: confirmed positive human Metapneumovirus (hMPV) test results", + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for human Metapneumovirus (hMPV)", + "number.max": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999", + "number.min": "The number of staff that have tested positive for human Metapneumovirus (hMPV) must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Both", + "path": "/both-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "path": "/both-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -778,36 +811,20 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rsv" }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-other" }, { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, - { - "path": "/severity-of-illness" + "path": "/service-users-ari-confirmed" } ] }, @@ -837,32 +854,81 @@ } ], "next": [ - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rsv" - }, { "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rsv" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" }, { - "path": "/severity-of-illness" + "path": "/staff-ari-confirmed" + } + ] + }, + { + "path": "/both-ari-parainfluenza", + "title": "Number of parainfluenza cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "ServiceUsersParainfluenza", + "type": "NumberField", + "title": "How many service users have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: confirmed positive parainfluenza test results", + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for parainfluenza", + "number.max": "The number of service users that have tested positive for parainfluenza must be between 0 and 999", + "number.min": "The number of service users that have tested positive for parainfluenza must be between 0 and 999" + } + } + }, + { + "name": "StaffParainfluenza", + "type": "NumberField", + "title": "How many staff have tested positive for parainfluenza?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: confirmed positive parainfluenza test results", + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for parainfluenza", + "number.max": "The number of staff that have tested positive for parainfluenza must be between 0 and 999", + "number.min": "The number of staff that have tested positive for parainfluenza must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "path": "/both-ari-other" + }, + { + "path": "/service-users-ari-confirmed" } ] }, @@ -892,37 +958,82 @@ } ], "next": [ - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, { "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-rhinovirus" }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-other" }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/staff-ari-rsv", + "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "StaffRSV", + "type": "NumberField", + "title": "How many staff have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: confirmed positive Respiratory Syncytial Virus (RSV) test results", + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for Respiratory Syncytial Virus (RSV)", + "number.max": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999", + "number.min": "The number of staff that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" + }, { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" }, { - "path": "/severity-of-illness" + "path": "/staff-ari-confirmed" } ] }, { - "path": "/staff-ari-rsv", - "title": "Staff: number of Respiratory Syncytial Virus (RSV) cases", + "path": "/both-ari-rsv", + "title": "Number of Respiratory Syncytial Virus (RSV) cases", "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ + { + "name": "ServiceUsersRSV", + "type": "NumberField", + "title": "How many service users have tested positive for Respiratory Syncytial Virus (RSV)?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: confirmed positive Respiratory Syncytial Virus (RSV) test results", + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for Respiratory Syncytial Virus (RSV)", + "number.max": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999", + "number.min": "The number of service users that have tested positive for Respiratory Syncytial Virus (RSV) must be between 0 and 999" + } + } + }, { "name": "StaffRSV", "type": "NumberField", @@ -944,29 +1055,91 @@ ], "next": [ { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-rhinovirus" + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rhinovirus" }, { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "path": "/both-ari-other" }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/service-users-ari-rhinovirus", + "title": "Service users: number of rhinovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "ServiceUsersRhinovirus", + "type": "NumberField", + "title": "How many service users have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: confirmed positive rhinovirus test results", + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for rhinovirus", + "number.max": "The number of service users that have tested positive for rhinovirus must be between 0 and 999", + "number.min": "The number of service users that have tested positive for rhinovirus must be between 0 and 999" + } + } + } + ], + "next": [ { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", "path": "/service-users-ari-other" }, + { + "path": "/service-users-ari-confirmed" + } + ] + }, + { + "path": "/staff-ari-rhinovirus", + "title": "Staff: number of rhinovirus cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "StaffRhinovirus", + "type": "NumberField", + "title": "How many staff have tested positive for rhinovirus?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: confirmed positive rhinovirus test results", + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for rhinovirus", + "number.max": "The number of staff that have tested positive for rhinovirus must be between 0 and 999", + "number.min": "The number of staff that have tested positive for rhinovirus must be between 0 and 999" + } + } + } + ], + "next": [ { "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", "path": "/staff-ari-other" }, { - "path": "/severity-of-illness" + "path": "/staff-ari-confirmed" } ] }, { - "path": "/service-users-ari-rhinovirus", - "title": "Service users: number of rhinovirus cases", + "path": "/both-ari-rhinovirus", + "title": "Number of rhinovirus cases", "sectionForEndSummaryPages": "InfectionsInYourSetting", "disableSingleComponentAsHeading": true, "components": [ @@ -987,32 +1160,7 @@ "number.min": "The number of service users that have tested positive for rhinovirus must be between 0 and 999" } } - } - ], - "next": [ - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" }, - { - "path": "/severity-of-illness" - } - ] - }, - { - "path": "/staff-ari-rhinovirus", - "title": "Staff: number of rhinovirus cases", - "sectionForEndSummaryPages": "InfectionsInYourSetting", - "disableSingleComponentAsHeading": true, - "components": [ { "name": "StaffRhinovirus", "type": "NumberField", @@ -1034,15 +1182,11 @@ ], "next": [ { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", - "path": "/service-users-ari-other" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "path": "/both-ari-other" }, { - "path": "/severity-of-illness" + "path": "/service-users-ari-confirmed" } ] }, @@ -1073,11 +1217,7 @@ ], "next": [ { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, - { - "path": "/severity-of-illness" + "path": "/service-users-ari-confirmed" } ] }, @@ -1108,7 +1248,56 @@ ], "next": [ { - "path": "/severity-of-illness" + "path": "/staff-ari-confirmed" + } + ] + }, + { + "path": "/both-ari-other", + "title": "Number of other acute respiratory infection cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "ServiceUsersOtherARI", + "type": "NumberField", + "title": "How many service users have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital or on visits out
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: confirmed positive other acute respiratory infection test results", + "customValidationMessages": { + "number.base": "Enter the number of service users that have tested positive for an other acute respiratory infection", + "number.max": "The number of service users that have tested positive for an other acute respiratory infection must be between 0 and 999", + "number.min": "The number of service users that have tested positive for an other acute respiratory infection must be between 0 and 999" + } + } + }, + { + "name": "StaffOtherARI", + "type": "NumberField", + "title": "How many staff have tested positive for an other acute respiratory infection?", + "hint": "Include those who are currently in hospital
If none, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: confirmed positive other acute respiratory infection test results", + "customValidationMessages": { + "number.base": "Enter the number of staff that have tested positive for an other acute respiratory infection", + "number.max": "The number of staff that have tested positive for an other acute respiratory infection must be between 0 and 999", + "number.min": "The number of staff that have tested positive for an other acute respiratory infection must be between 0 and 999" + } + } + } + ], + "next": [ + { + "path": "/service-users-ari-confirmed" } ] }, @@ -1721,11 +1910,76 @@ ], "next": [ { - "condition": "OtherARIServiceOrStaff:ServiceUsers", - "path": "/service-users-ari-confirmed" + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Both", + "path": "/both-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Both", + "path": "/both-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Both", + "path": "/both-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "path": "/both-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "path": "/both-ari-other" + }, + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-rhinovirus" + }, + { + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:ServiceUser", + "path": "/service-users-ari-other" + }, + { + "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-adenovirus" + }, + { + "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-hmpv" + }, + { + "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-parainfluenza" + }, + { + "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rsv" + }, + { + "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-rhinovirus" }, { - "path": "/staff-ari-cases" + "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", + "path": "/staff-ari-other" } ] }, @@ -1762,7 +2016,6 @@ "condition": "UnknownARI&ServiceOrStaff:Staff", "path": "/staff-ari-unknown" }, - { "path": "/service-users-flu", "condition": "WhichARI:Flu&ARIServiceOrStaff:ServiceUsers" @@ -1780,12 +2033,12 @@ "condition": "WhichARI:Covid&ARIServiceOrStaff:Staff" }, { - "path": "/staff-ari-cases" + "path": "/staff-ari-confirmed" } ] }, { - "path": "/staff-ari-cases", + "path": "/staff-ari-confirmed", "title": "Staff: number of other cases", "sectionForEndSummaryPages": "InfectionsInYourSetting", "components": [ @@ -1850,30 +2103,6 @@ } ], "next": [ - { - "condition": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-adenovirus" - }, - { - "condition": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-hmpv" - }, - { - "condition": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-parainfluenza" - }, - { - "condition": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rsv" - }, - { - "condition": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-rhinovirus" - }, - { - "condition": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Staff", - "path": "/staff-ari-other" - }, { "path": "/severity-of-illness" } @@ -3367,20 +3596,106 @@ "operator": "is", "value": { "type": "Value", - "value": "false", - "display": "No" + "value": "false", + "display": "No" + } + } + ] + } + }, + { + "displayName": "OtherARIServiceOrStaff:ServiceUsers", + "name": "OtherARIServiceOrStaff:ServiceUsers", + "value": { + "name": "OtherARIServiceOrStaff:ServiceUsers", + "conditions": [ + { + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "OtherARIServiceOrStaff:Both", + "name": "OtherARIServiceOrStaff:Both", + "value": { + "name": "OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Both", + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Both", + "value": { + "name": "ARIInfectionType:Adenovirus&OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Adenovirus", + "display": "Adenovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" } - } - ] - } - }, - { - "displayName": "OtherARIServiceOrStaff:ServiceUsers", - "name": "OtherARIServiceOrStaff:ServiceUsers", - "value": { - "name": "OtherARIServiceOrStaff:ServiceUsers", - "conditions": [ + }, { + "coordinator": "and", "field": { "name": "OtherARIServiceOrStaff", "type": "CheckboxesField", @@ -3389,8 +3704,8 @@ "operator": "contains", "value": { "type": "Value", - "value": "Service users", - "display": "Service users" + "value": "Staff", + "display": "Staff" } } ] @@ -3592,7 +3907,7 @@ "value": { "type": "Value", "value": "Other acute respiratory infection", - "display": "Rhinovirus" + "display": "Other acute respiratory infection" } }, { @@ -3828,6 +4143,256 @@ ] } }, + { + "displayName": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Both", + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Both", + "value": { + "name": "ARIInfectionType:Hmpv&OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Human Metapneumovirus (hMPV)", + "display": "Human Metapneumovirus (hMPV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Both", + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Both", + "value": { + "name": "ARIInfectionType:Parainfluenza&OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Parainfluenza", + "display": "Parainfluenza" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "value": { + "name": "ARIInfectionType:RSV&OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Respiratory Syncytial Virus (RSV)", + "display": "Respiratory Syncytial Virus (RSV)" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "value": { + "name": "ARIInfectionType:Rhinovirus&OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Rhinovirus", + "display": "Rhinovirus" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "value": { + "name": "ARIInfectionType:Unknown&OtherARIServiceOrStaff:Both", + "conditions": [ + { + "field": { + "name": "ARIInfectionType", + "type": "CheckboxesField", + "display": "What infection are you reporting?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Other acute respiratory infection", + "display": "Other acute respiratory infection" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + }, + { + "coordinator": "and", + "field": { + "name": "OtherARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, { "displayName": "PositiveARI:No", "name": "PositiveARI:No", From cefcd38ea4e54066b5b11ab9329b72792a4cc431 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 1 Apr 2025 13:29:23 +0100 Subject: [PATCH 196/403] CAR-1628 fix incorrect summary title on unknown ari staff symptoms not tested question (#317) --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 9d62546bc2..88b5c63561 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1392,7 +1392,7 @@ "max": 999 }, "options": { - "summaryTitle": "Staff: confirmed positive flu test results", + "summaryTitle": "Staff: with symptoms, but not tested", "customValidationMessages": { "number.base": "Enter the number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection", "number.max": "The number of staff that have symptoms of an acute respiratory infection, but have not been tested for any infection must be between 0 and 999", From eb05b86cc4ca9a18d55a72921a483fdbf13e0af4 Mon Sep 17 00:00:00 2001 From: Etasha-ukhsa Date: Wed, 2 Apr 2025 16:15:49 +0100 Subject: [PATCH 197/403] testing existing form with SRS URL --- runner/src/server/forms/test.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/test.json b/runner/src/server/forms/test.json index eb4d6364b9..8e9d5668ed 100644 --- a/runner/src/server/forms/test.json +++ b/runner/src/server/forms/test.json @@ -473,7 +473,7 @@ "title": "Test webhook", "type": "webhook", "outputConfiguration": { - "url": "https://61bca17e-fe74-40e0-9c15-a901ad120eca.mock.pstmn.io" + "url": "https://060nw3t077.execute-api.eu-west-2.amazonaws.com/v1/forms" } } ], From 9d8cfc2a16517d0d1ba3c28d57a980ad8700a1a8 Mon Sep 17 00:00:00 2001 From: Etasha-ukhsa Date: Wed, 2 Apr 2025 17:50:27 +0100 Subject: [PATCH 198/403] updating URL --- runner/src/server/forms/TestEndpointConfig.json | 2 +- runner/src/server/forms/test.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/TestEndpointConfig.json b/runner/src/server/forms/TestEndpointConfig.json index 450f0f6646..b648f7287d 100644 --- a/runner/src/server/forms/TestEndpointConfig.json +++ b/runner/src/server/forms/TestEndpointConfig.json @@ -94,7 +94,7 @@ "title": "SRS Endpoint", "type": "webhook", "outputConfiguration": { - "url": "https://060nw3t077.execute-api.eu-west-2.amazonaws.com/v1/forms", + "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", "allowRetry": true, "sendAdditionalPayMetadata": false } diff --git a/runner/src/server/forms/test.json b/runner/src/server/forms/test.json index 8e9d5668ed..6d29c018aa 100644 --- a/runner/src/server/forms/test.json +++ b/runner/src/server/forms/test.json @@ -473,7 +473,7 @@ "title": "Test webhook", "type": "webhook", "outputConfiguration": { - "url": "https://060nw3t077.execute-api.eu-west-2.amazonaws.com/v1/forms" + "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms" } } ], From 33bfca1e808b4cd3d727d44ca0cf9fa80149e7e4 Mon Sep 17 00:00:00 2001 From: Kathryn Dale Date: Thu, 3 Apr 2025 15:20:50 +0100 Subject: [PATCH 199/403] fix: Add L3 as code owners for UKHSA fork --- .github/CODEOWNERS | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000000..dc6202eb9b --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# Each line is a file pattern followed by one or more owners. + +# L3 Engineering are the default owners for everything excluding team specific forms (unless it's for a product supported by L3, in which +# case they are owners for those specific forms too) + +* @ukhsa-collaboration/L3-Engineering +/runner/src/server/forms/ReportAnOutbreak @ukhsa-collaboration/L3-Engineering + +/runner/src/server/forms \ No newline at end of file From 5dcf378639c415e4747e302cba06effe7081d568 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 3 Apr 2025 15:57:59 +0100 Subject: [PATCH 200/403] Add close-contact-form.json --- .../src/server/forms/close-contact-form.json | 3217 +++++++++++++++++ 1 file changed, 3217 insertions(+) create mode 100644 runner/src/server/forms/close-contact-form.json diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json new file mode 100644 index 0000000000..0986b198d5 --- /dev/null +++ b/runner/src/server/forms/close-contact-form.json @@ -0,0 +1,3217 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

Before you start

", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the businesses and the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "wseFxq", + "options": {}, + "type": "Html", + "content": "\n Start now\n \n \n \n", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

If you need help completing this form

", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "referenceID", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, + { + "name": "rGrRNN", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "cGrRNN", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

Contact details

" + }, + { + "name": "tXnJTl", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "EEGfAc", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "RhyImE" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "iRJvrX", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who you are completing the form for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ] + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, + { + "name": "FaENUm", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "LaENUm", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

Contact details

" + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
" + }, + { + "name": "giIvyu", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ZvTgoD", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "mKkWra" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "RdSrff", + "options": {}, + "type": "RadiosField", + "title": "Who we should contact", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }] + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "FFRnNF", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "'Yes' if they've been in close contact", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-name-1", "condition": "IfContactsYesOther" }, + { "path": "/summary", "condition": "IfContactsNoOther" } + ] + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "GFRnNF", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "'Yes' if you've been in close contact", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-name-1", "condition": "IfContactsYesYou" }, + { "path": "/summary", "condition": "IfContactsNoYou" } + ] + }, + { + "path": "/close-contact-name-1", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName1", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName1", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-methods-1", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber1", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail1", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of a close contact.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "section": "CloseContact1" + }, + { + "path": "/close-contact-name-2", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName2", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName2", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-methods-2", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber2", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail2", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 2 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "section": "CloseContact2" + }, + { + "path": "/close-contact-name-3", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName3", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName3", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-methods-3", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber3", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail3", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 3 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "section": "CloseContact3" + }, + { + "path": "/close-contact-name-4", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName4", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName4", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-methods-4", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber4", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail4", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 4 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "section": "CloseContact4" + }, + { + "path": "/close-contact-name-5", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName5", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName5", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-methods-5", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber5", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail5", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 5 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "section": "CloseContact5" + }, + { + "path": "/close-contact-name-6", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName6", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName6", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-methods-6", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber6", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail6", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 6 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "section": "CloseContact6" + }, + { + "path": "/close-contact-name-7", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName7", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName7", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-methods-7", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber7", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail7", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 7 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "section": "CloseContact7" + }, + { + "path": "/close-contact-name-8", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName8", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName8", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-methods-8", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber8", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail8", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 8 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "section": "CloseContact8" + }, + { + "path": "/close-contact-name-9", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName9", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName9", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-methods-9", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber9", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail9", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 9 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "section": "CloseContact9" + }, + { + "path": "/close-contact-name-10", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName10", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName10", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-methods-10", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber10", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail10", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 10 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "section": "CloseContact10" + }, + { + "path": "/close-contact-name-11", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName11", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName11", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-methods-11", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber11", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail11", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 11 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "section": "CloseContact11" + }, + { + "path": "/close-contact-name-12", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName12", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName12", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-methods-12", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber12", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail12", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 12 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "section": "CloseContact12" + }, + { + "path": "/close-contact-name-13", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName13", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName13", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-methods-13", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber13", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail13", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 13 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "section": "CloseContact13" + }, + { + "path": "/close-contact-name-14", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName14", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName14", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-methods-14", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber14", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail14", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 14 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "section": "CloseContact14" + }, + { + "path": "/close-contact-name-15", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName15", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName15", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-methods-15", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber15", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail15", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 15 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "section": "CloseContact15" + }, + { + "path": "/close-contact-name-16", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName16", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName16", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-methods-16", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber16", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail16", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 16 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "section": "CloseContact16" + }, + { + "path": "/close-contact-name-17", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName17", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName17", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-methods-17", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber17", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail17", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 17 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "section": "CloseContact17" + }, + { + "path": "/close-contact-name-18", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName18", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName18", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-methods-18", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber18", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail18", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 18 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "section": "CloseContact18" + }, + { + "path": "/close-contact-name-19", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName19", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName19", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-methods-19", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber19", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail19", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 19 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "section": "CloseContact19" + }, + { + "path": "/close-contact-name-20", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName20", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName20", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-20" }], + "section": "CloseContact20" + }, + { + "path": "/close-contact-methods-20", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber20", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail20", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should contact", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { "name": "RhyImE", "title": "Enter your details", "hideTitle": false }, + { + "name": "mKkWra", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "iRJvrX", + "type": "RadiosField", + "display": "Who you are completing the form for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "iRJvrX", + "type": "RadiosField", + "display": "Who you are completing the form for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYesOther", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "FFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNoOther", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "FFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYesYou", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "GFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNoYou", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "GFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact1.AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact1.AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact2.AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact2.AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact3.AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact3.AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact4.AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact4.AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact5.AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact5.AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact6.AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact6.AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact7.AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact7.AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact8.AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact8.AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact9.AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact9.AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact10.AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact10.AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact11.AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact11.AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact12.AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact12.AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact13.AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact13.AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact14.AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact14.AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact15.AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact15.AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact16.AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact16.AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact17.AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact17.AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact18.AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact18.AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact19.AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact19.AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact20.AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact20.AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "authCheck": false +} From d9dee8fde6bbcbdb8b9a86f034c138365d67d0ce Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:02:42 +0100 Subject: [PATCH 201/403] Add check for BST and adjust magic link expiry time if required (#321) --- runner/src/server/utils/hmac.ts | 45 +++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/runner/src/server/utils/hmac.ts b/runner/src/server/utils/hmac.ts index 9b6202cbe8..e2fc208fb0 100644 --- a/runner/src/server/utils/hmac.ts +++ b/runner/src/server/utils/hmac.ts @@ -3,13 +3,47 @@ import crypto from "crypto"; // Configuration constants const TIME_THRESHOLD = 1200; // 5 minutes in seconds +function lastSunday(month, year) { + var d = new Date(); + var lastDayOfMonth = new Date(Date.UTC(year || d.getFullYear(), month, 0)); + var day = lastDayOfMonth.getDay(); + return new Date( + Date.UTC( + lastDayOfMonth.getFullYear(), + lastDayOfMonth.getMonth(), + lastDayOfMonth.getDate() - day + ) + ); +} + +function isBST(date) { + var d = date || new Date(); + var starts = lastSunday(3, d.getFullYear()); + starts.setHours(1); + var ends = lastSunday(10, d.getFullYear()); + ends.setHours(1); + return d.getTime() >= starts.getTime() && d.getTime() < ends.getTime(); +} + +function applyBSTIfRequired(timestamp) { + const date = new Date(timestamp * 1000); + + if (isBST(date)) { + // During BST, add 1 hour (3600 seconds) + return timestamp + 3600; + } else { + // During GMT, no adjustment needed + return timestamp; + } +} + /** * Formats a Unix timestamp to a human-readable time string */ function formatUnixTimestamp(timestamp: number): string { const date = new Date(timestamp * 1000); // Convert seconds to milliseconds - let hours = date.getHours(); - const minutes = date.getMinutes(); + let hours = date.getUTCHours(); + const minutes = date.getUTCMinutes(); const ampm = hours >= 12 ? "pm" : "am"; hours = hours % 12 || 12; // Convert 0 to 12 for 12-hour format @@ -34,9 +68,10 @@ export async function createHmac(email: string, hmacKey: string) { .update(dataToHash) .digest("hex"); - const hmacExpiryTime = formatUnixTimestamp( - currentTimestamp + TIME_THRESHOLD - ); + const expiryTimestamp = currentTimestamp + TIME_THRESHOLD; + const adjustedExpiryForDisplay = applyBSTIfRequired(expiryTimestamp); + + const hmacExpiryTime = formatUnixTimestamp(adjustedExpiryForDisplay); return [hmac, currentTimestamp, hmacExpiryTime]; } catch (error) { From 7ffc11d506b73fb13f21d21de58205083ea289da Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 4 Apr 2025 14:53:25 +0100 Subject: [PATCH 202/403] CQC regex change and link change (#322) --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 88b5c63561..6e89ccabf9 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2774,7 +2774,7 @@ } }, "schema": { - "regex": "^1-\\d{9}$" + "regex": "^(?:1-\\d{9,11}|[A-Z][A-Z0-9]{4,6})$" } } } @@ -2791,7 +2791,7 @@ "name": "nMOTdlmry", "options": {}, "type": "Para", - "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab). The CQC location ID is listed on the ‘Registration details’ page for your care setting.", + "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab). The CQC location ID is listed on the ‘Registration details’ page for your care setting.", "schema": {} } ], From de9929c7763178a328586a4ce2a288055f06aeea Mon Sep 17 00:00:00 2001 From: Etasha-ukhsa Date: Fri, 4 Apr 2025 17:04:44 +0100 Subject: [PATCH 203/403] Removing URL from test form and deleting test form created for SRS --- .../src/server/forms/TestEndpointConfig.json | 117 ------------------ runner/src/server/forms/test.json | 2 +- 2 files changed, 1 insertion(+), 118 deletions(-) delete mode 100644 runner/src/server/forms/TestEndpointConfig.json diff --git a/runner/src/server/forms/TestEndpointConfig.json b/runner/src/server/forms/TestEndpointConfig.json deleted file mode 100644 index b648f7287d..0000000000 --- a/runner/src/server/forms/TestEndpointConfig.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "metadata": {}, - "startPage": "/are-you-human", - "pages": [ - { - "title": "Are you human?", - "path": "/are-you-human", - "components": [ - { - "name": "lowQbd", - "options": {}, - "type": "RadiosField", - "title": "Are you human", - "list": "WLIOaK", - "schema": {} - } - ], - "next": [ - { - "path": "/contact-details-demo" - } - ] - }, - { - "path": "/contact-details-demo", - "title": "Contact details [DEMO]", - "components": [ - { - "name": "IndividualsName", - "options": {}, - "type": "TextField", - "title": "Your name", - "nameHasError": false, - "schema": { - "min": "1" - } - }, - { - "name": "wHFRap", - "options": {}, - "type": "TelephoneNumberField", - "title": "Telephone", - "schema": {} - }, - { - "name": "Address", - "options": { - "exposeToContext": false, - "required": false - }, - "type": "UkAddressField", - "title": "Address", - "schema": {}, - "nameHasError": false - } - ], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [], - "next": [] - } - ], - "lists": [ - { - "title": "YesNo", - "name": "WLIOaK", - "type": "string", - "items": [ - { - "text": "Yes", - "value": "Yes" - }, - { - "text": "No", - "value": "No" - } - ] - } - ], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "CzHjkd", - "title": "SRS Endpoint", - "type": "webhook", - "outputConfiguration": { - "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", - "allowRetry": true, - "sendAdditionalPayMetadata": false - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, - "name": "Test Endpoint Config", - "feedback": { - "feedbackForm": false, - "url": "" - }, - "phaseBanner": {}, - "declaration": "" -} diff --git a/runner/src/server/forms/test.json b/runner/src/server/forms/test.json index 6d29c018aa..eb4d6364b9 100644 --- a/runner/src/server/forms/test.json +++ b/runner/src/server/forms/test.json @@ -473,7 +473,7 @@ "title": "Test webhook", "type": "webhook", "outputConfiguration": { - "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms" + "url": "https://61bca17e-fe74-40e0-9c15-a901ad120eca.mock.pstmn.io" } } ], From 3e977eaf4f7dd8537f7294c02c12d75f8727e29e Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 7 Apr 2025 09:49:28 +0100 Subject: [PATCH 204/403] Revert "Add close-contact-form.json" (#324) --- .../src/server/forms/close-contact-form.json | 3217 ----------------- 1 file changed, 3217 deletions(-) delete mode 100644 runner/src/server/forms/close-contact-form.json diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json deleted file mode 100644 index 0986b198d5..0000000000 --- a/runner/src/server/forms/close-contact-form.json +++ /dev/null @@ -1,3217 +0,0 @@ -{ - "metadata": {}, - "startPage": "/start", - "pages": [ - { - "title": "Identify close contacts of bird flu", - "path": "/start", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", - "schema": {} - }, - { - "name": "tKEFcw", - "options": {}, - "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", - "schema": {} - }, - { - "name": "QlWuFo", - "options": {}, - "type": "Para", - "content": "It should take about 10 minutes to complete.", - "schema": {} - }, - { - "name": "ifAKep", - "options": {}, - "type": "Html", - "content": "

Before you start

", - "schema": {} - }, - { - "name": "VCwJTN", - "options": {}, - "type": "Para", - "content": "We will need some details of the businesses and the people that you will list in this form. These details include:", - "schema": {} - }, - { - "name": "ksyXub", - "options": {}, - "type": "List", - "title": "Details required", - "list": "rcWCzy", - "schema": {} - }, - { - "name": "Qkjtcn", - "options": {}, - "type": "Para", - "content": "You will need the details of the close contacts ready.", - "schema": {} - }, - { - "name": "TqEyQM", - "options": {}, - "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", - "schema": {} - }, - { - "name": "wseFxq", - "options": {}, - "type": "Html", - "content": "\n Start now\n \n \n \n", - "schema": {} - }, - { - "name": "gfOVOL", - "options": {}, - "type": "Html", - "content": "

If you need help completing this form

", - "schema": {} - }, - { - "name": "jmslVl", - "options": {}, - "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", - "schema": {} - }, - { - "name": "referenceID", - "options": { - "allowPrePopulation": true, - "allowPrePopulationOverwrite": true, - "classes": "govuk-visually-hidden", - "hideTitle": true, - "disableChangingFromSummary": true, - "required": false - }, - "type": "TextField", - "title": "Reference ID", - "schema": {} - } - ], - "next": [{ "path": "/personal-details" }], - "controller": "./pages/start.js" - }, - { - "path": "/personal-details", - "title": "Personal details", - "components": [ - { - "name": "lcOnmo", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, - { - "name": "rGrRNN", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "cGrRNN", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "pcOnmo", - "options": {}, - "type": "Html", - "content": "

Contact details

" - }, - { - "name": "tXnJTl", - "options": {}, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "EEGfAc", - "options": { "required": false }, - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/completing-form-for" }], - "section": "RhyImE" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "iRJvrX", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who you are completing the form for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ] - }, - { - "path": "/other-persons-details", - "title": "Other person's details", - "components": [ - { - "name": "lcOnmo", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, - { - "name": "FaENUm", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "LaENUm", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "pcOnmo", - "options": {}, - "type": "Html", - "content": "

Contact details

" - }, - { - "name": "TLaaZQ", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
" - }, - { - "name": "giIvyu", - "options": {}, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ZvTgoD", - "options": { "required": false }, - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "mKkWra" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "RdSrff", - "options": {}, - "type": "RadiosField", - "title": "Who we should contact", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} - }, - { - "name": "JJOVvQ", - "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} - } - ], - "next": [{ "path": "/close-contact" }] - }, - { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", - "components": [ - { - "name": "EiNVay", - "options": {}, - "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" - }, - { - "name": "TCnLHZ", - "options": {}, - "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" - }, - { - "name": "FFRnNF", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "'Yes' if they've been in close contact", - "list": "YQUrgI", - "values": { "type": "listRef" }, - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-name-1", "condition": "IfContactsYesOther" }, - { "path": "/summary", "condition": "IfContactsNoOther" } - ] - }, - { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", - "components": [ - { - "name": "EiNVay", - "options": {}, - "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" - }, - { - "name": "TCnLHZ", - "options": {}, - "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" - }, - { - "name": "GFRnNF", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "'Yes' if you've been in close contact", - "list": "YQUrgI", - "values": { "type": "listRef" }, - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-name-1", "condition": "IfContactsYesYou" }, - { "path": "/summary", "condition": "IfContactsNoYou" } - ] - }, - { - "path": "/close-contact-name-1", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName1", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName1", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-1" }], - "section": "CloseContact1" - }, - { - "path": "/close-contact-methods-1", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber1", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail1", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" - }, - { - "path": "/close-contact-added-1", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of a close contact.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson1", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } - ], - "section": "CloseContact1" - }, - { - "path": "/close-contact-name-2", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName2", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName2", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-2" }], - "section": "CloseContact2" - }, - { - "path": "/close-contact-methods-2", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber2", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail2", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" - }, - { - "path": "/close-contact-added-2", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 2 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson2", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } - ], - "section": "CloseContact2" - }, - { - "path": "/close-contact-name-3", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName3", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName3", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-3" }], - "section": "CloseContact3" - }, - { - "path": "/close-contact-methods-3", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber3", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail3", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" - }, - { - "path": "/close-contact-added-3", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 3 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson3", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } - ], - "section": "CloseContact3" - }, - { - "path": "/close-contact-name-4", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName4", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName4", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-4" }], - "section": "CloseContact4" - }, - { - "path": "/close-contact-methods-4", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber4", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail4", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" - }, - { - "path": "/close-contact-added-4", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 4 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson4", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } - ], - "section": "CloseContact4" - }, - { - "path": "/close-contact-name-5", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName5", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName5", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-5" }], - "section": "CloseContact5" - }, - { - "path": "/close-contact-methods-5", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber5", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail5", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" - }, - { - "path": "/close-contact-added-5", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 5 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson5", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } - ], - "section": "CloseContact5" - }, - { - "path": "/close-contact-name-6", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName6", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName6", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-6" }], - "section": "CloseContact6" - }, - { - "path": "/close-contact-methods-6", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber6", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail6", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" - }, - { - "path": "/close-contact-added-6", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 6 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson6", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } - ], - "section": "CloseContact6" - }, - { - "path": "/close-contact-name-7", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName7", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName7", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-7" }], - "section": "CloseContact7" - }, - { - "path": "/close-contact-methods-7", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber7", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail7", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" - }, - { - "path": "/close-contact-added-7", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 7 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson7", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } - ], - "section": "CloseContact7" - }, - { - "path": "/close-contact-name-8", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName8", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName8", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-8" }], - "section": "CloseContact8" - }, - { - "path": "/close-contact-methods-8", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber8", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail8", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" - }, - { - "path": "/close-contact-added-8", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 8 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson8", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } - ], - "section": "CloseContact8" - }, - { - "path": "/close-contact-name-9", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName9", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName9", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-9" }], - "section": "CloseContact9" - }, - { - "path": "/close-contact-methods-9", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber9", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail9", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" - }, - { - "path": "/close-contact-added-9", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 9 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson9", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } - ], - "section": "CloseContact9" - }, - { - "path": "/close-contact-name-10", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName10", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName10", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-10" }], - "section": "CloseContact10" - }, - { - "path": "/close-contact-methods-10", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber10", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail10", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" - }, - { - "path": "/close-contact-added-10", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 10 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } - ], - "section": "CloseContact10" - }, - { - "path": "/close-contact-name-11", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName11", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName11", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-11" }], - "section": "CloseContact11" - }, - { - "path": "/close-contact-methods-11", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber11", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail11", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" - }, - { - "path": "/close-contact-added-11", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 11 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson11", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } - ], - "section": "CloseContact11" - }, - { - "path": "/close-contact-name-12", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName12", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName12", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-12" }], - "section": "CloseContact12" - }, - { - "path": "/close-contact-methods-12", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber12", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail12", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" - }, - { - "path": "/close-contact-added-12", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 12 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson12", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } - ], - "section": "CloseContact12" - }, - { - "path": "/close-contact-name-13", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName13", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName13", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-13" }], - "section": "CloseContact13" - }, - { - "path": "/close-contact-methods-13", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber13", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail13", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" - }, - { - "path": "/close-contact-added-13", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 13 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson13", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } - ], - "section": "CloseContact13" - }, - { - "path": "/close-contact-name-14", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName14", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName14", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-14" }], - "section": "CloseContact14" - }, - { - "path": "/close-contact-methods-14", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber14", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail14", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" - }, - { - "path": "/close-contact-added-14", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 14 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson14", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } - ], - "section": "CloseContact14" - }, - { - "path": "/close-contact-name-15", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName15", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName15", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-15" }], - "section": "CloseContact15" - }, - { - "path": "/close-contact-methods-15", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber15", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail15", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" - }, - { - "path": "/close-contact-added-15", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 15 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson15", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } - ], - "section": "CloseContact15" - }, - { - "path": "/close-contact-name-16", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName16", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName16", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-16" }], - "section": "CloseContact16" - }, - { - "path": "/close-contact-methods-16", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber16", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail16", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" - }, - { - "path": "/close-contact-added-16", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 16 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson16", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } - ], - "section": "CloseContact16" - }, - { - "path": "/close-contact-name-17", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName17", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName17", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-17" }], - "section": "CloseContact17" - }, - { - "path": "/close-contact-methods-17", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber17", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail17", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" - }, - { - "path": "/close-contact-added-17", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 17 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson17", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } - ], - "section": "CloseContact17" - }, - { - "path": "/close-contact-name-18", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName18", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName18", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-18" }], - "section": "CloseContact18" - }, - { - "path": "/close-contact-methods-18", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber18", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail18", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" - }, - { - "path": "/close-contact-added-18", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 18 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson18", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } - ], - "section": "CloseContact18" - }, - { - "path": "/close-contact-name-19", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName19", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName19", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-19" }], - "section": "CloseContact19" - }, - { - "path": "/close-contact-methods-19", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber19", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail19", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" - }, - { - "path": "/close-contact-added-19", - "title": "Close contact added", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 19 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", - "options": {}, - "type": "Html", - "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" - }, - { - "name": "AnotherPerson19", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact" - } - ], - "next": [ - { "path": "/close-contact-name-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } - ], - "section": "CloseContact19" - }, - { - "path": "/close-contact-name-20", - "title": "Enter the name for your close contact", - "components": [ - { - "name": "ContactFirstName20", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "ContactLastName20", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-20" }], - "section": "CloseContact20" - }, - { - "path": "/close-contact-methods-20", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" - }, - { - "name": "ContactPhoneNumber20", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "ContactEmail20", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/summary" }], - "section": "CloseContact20" - }, - { - "path": "/summary", - "title": "Check the details before submitting", - "components": [], - "next": [], - "controller": "./pages/summary.js" - } - ], - "lists": [ - { - "title": "Start list 1", - "name": "yRnBmv", - "type": "string", - "items": [ - { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" - }, - { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" - } - ] - }, - { - "title": "Who are you completing this form for?", - "name": "AVoXlG", - "type": "string", - "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } - ] - }, - { - "title": "Who we should contact", - "name": "lNoBeE", - "type": "string", - "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } - ] - }, - { - "title": "Close contact (other) list", - "name": "oDwqlv", - "type": "string", - "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, - { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" - }, - { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" - } - ] - }, - { - "title": "Close contact (you) list", - "name": "yDwqlv", - "type": "string", - "items": [ - { "text": "people you live with", "value": "people you live with" }, - { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" - }, - { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" - }, - { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" - }, - { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" - } - ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] - } - ], - "sections": [ - { "name": "RhyImE", "title": "Enter your details", "hideTitle": false }, - { - "name": "mKkWra", - "title": "Enter the details for the person who is being contact traced", - "hideTitle": false - }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, - { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false - }, - { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false - }, - { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false - }, - { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false - }, - { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false - }, - { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false - }, - { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false - }, - { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false - }, - { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false - }, - { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false - }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } - ], - "conditions": [ - { - "displayName": "If someone else", - "name": "lGzwuI", - "value": { - "name": "If someone else", - "conditions": [ - { - "field": { - "name": "iRJvrX", - "type": "RadiosField", - "display": "Who you are completing the form for" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } - } - ] - } - }, - { - "displayName": "If myself", - "name": "SypzMi", - "value": { - "name": "If myself", - "conditions": [ - { - "field": { - "name": "iRJvrX", - "type": "RadiosField", - "display": "Who you are completing the form for" - }, - "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } - } - ] - } - }, - { - "displayName": "If contacts", - "name": "IfContactsYesOther", - "value": { - "name": "If contacts needed", - "conditions": [ - { - "field": { - "name": "FFRnNF", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } - } - ] - } - }, - { - "displayName": "If no contacts", - "name": "IfContactsNoOther", - "value": { - "name": "If no contacts needed", - "conditions": [ - { - "field": { - "name": "FFRnNF", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } - } - ] - } - }, - { - "displayName": "If contacts", - "name": "IfContactsYesYou", - "value": { - "name": "If contacts needed", - "conditions": [ - { - "field": { - "name": "GFRnNF", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } - } - ] - } - }, - { - "displayName": "If no contacts", - "name": "IfContactsNoYou", - "value": { - "name": "If no contacts needed", - "conditions": [ - { - "field": { - "name": "GFRnNF", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact1.AnotherPerson1", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact1.AnotherPerson1", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact2.AnotherPerson2", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact2.AnotherPerson2", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact3.AnotherPerson3", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact3.AnotherPerson3", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact4.AnotherPerson4", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact4.AnotherPerson4", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact5.AnotherPerson5", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact5.AnotherPerson5", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact6.AnotherPerson6", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact6.AnotherPerson6", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact7.AnotherPerson7", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact7.AnotherPerson7", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact8.AnotherPerson8", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact8.AnotherPerson8", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact9.AnotherPerson9", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact9.AnotherPerson9", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact10.AnotherPerson10", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact10.AnotherPerson10", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact11.AnotherPerson11", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact11.AnotherPerson11", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact12.AnotherPerson12", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact12.AnotherPerson12", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact13.AnotherPerson13", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact13.AnotherPerson13", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact14.AnotherPerson14", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact14.AnotherPerson14", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact15.AnotherPerson15", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact15.AnotherPerson15", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact16.AnotherPerson16", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact16.AnotherPerson16", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact17.AnotherPerson17", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact17.AnotherPerson17", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact18.AnotherPerson18", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact18.AnotherPerson18", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact19.AnotherPerson19", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact19.AnotherPerson19", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact20.AnotherPerson20", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "CloseContact20.AnotherPerson20", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - } - ], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, - "authCheck": false -} From 14159e328d39392ee412bf2d1c8c548c53ce90de Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 7 Apr 2025 11:29:56 +0100 Subject: [PATCH 205/403] Fix broken condition for other ari routing (#325) --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 6e89ccabf9..f440982623 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -4122,8 +4122,8 @@ "operator": "contains", "value": { "type": "Value", - "value": "Any other acute respiratory infection", - "display": "Any other acute respiratory infection" + "value": "Other acute respiratory infection", + "display": "Other acute respiratory infection" } }, { From 3c5b2355f0e81152ffb1a655140a5c6320db9928 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 7 Apr 2025 14:23:36 +0100 Subject: [PATCH 206/403] Add files via upload --- .../src/server/forms/close-contact-form.json | 3216 +++++++++++++++++ 1 file changed, 3216 insertions(+) create mode 100644 runner/src/server/forms/close-contact-form.json diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json new file mode 100644 index 0000000000..098ffd9ba8 --- /dev/null +++ b/runner/src/server/forms/close-contact-form.json @@ -0,0 +1,3216 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

Before you start

", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the businesses and the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "wseFxq", + "options": {}, + "type": "Html", + "content": "\n Start now\n \n \n \n", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

If you need help completing this form

", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "referenceID", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, + { + "name": "rGrRNN", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "cGrRNN", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

Contact details

" + }, + { + "name": "tXnJTl", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "EEGfAc", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "RhyImE" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "iRJvrX", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who you are completing the form for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ] + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, + { + "name": "FaENUm", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "LaENUm", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

Contact details

" + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
" + }, + { + "name": "giIvyu", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ZvTgoD", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "mKkWra" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "RdSrff", + "options": {}, + "type": "RadiosField", + "title": "Who we should contact", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }] + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "FFRnNF", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "'Yes' if they've been in close contact", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-name-1", "condition": "IfContactsYesOther" }, + { "path": "/summary", "condition": "IfContactsNoOther" } + ] + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "GFRnNF", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "'Yes' if you've been in close contact", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-name-1", "condition": "IfContactsYesYou" }, + { "path": "/summary", "condition": "IfContactsNoYou" } + ] + }, + { + "path": "/close-contact-name-1", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName1", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName1", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-methods-1", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber1", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail1", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of a close contact.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "section": "CloseContact1" + }, + { + "path": "/close-contact-name-2", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName2", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName2", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-methods-2", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber2", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail2", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 2 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "section": "CloseContact2" + }, + { + "path": "/close-contact-name-3", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName3", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName3", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-methods-3", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber3", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail3", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 3 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "section": "CloseContact3" + }, + { + "path": "/close-contact-name-4", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName4", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName4", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-methods-4", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber4", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail4", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 4 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "section": "CloseContact4" + }, + { + "path": "/close-contact-name-5", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName5", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName5", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-methods-5", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber5", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail5", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 5 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "section": "CloseContact5" + }, + { + "path": "/close-contact-name-6", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName6", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName6", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-methods-6", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber6", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail6", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 6 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "section": "CloseContact6" + }, + { + "path": "/close-contact-name-7", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName7", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName7", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-methods-7", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber7", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail7", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 7 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "section": "CloseContact7" + }, + { + "path": "/close-contact-name-8", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName8", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName8", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-methods-8", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber8", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail8", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 8 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "section": "CloseContact8" + }, + { + "path": "/close-contact-name-9", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName9", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName9", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-methods-9", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber9", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail9", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 9 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "section": "CloseContact9" + }, + { + "path": "/close-contact-name-10", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName10", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName10", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-methods-10", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber10", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail10", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 10 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "section": "CloseContact10" + }, + { + "path": "/close-contact-name-11", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName11", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName11", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-methods-11", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber11", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail11", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 11 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "section": "CloseContact11" + }, + { + "path": "/close-contact-name-12", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName12", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName12", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-methods-12", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber12", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail12", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 12 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "section": "CloseContact12" + }, + { + "path": "/close-contact-name-13", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName13", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName13", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-methods-13", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber13", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail13", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 13 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "section": "CloseContact13" + }, + { + "path": "/close-contact-name-14", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName14", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName14", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-methods-14", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber14", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail14", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 14 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "section": "CloseContact14" + }, + { + "path": "/close-contact-name-15", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName15", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName15", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-methods-15", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber15", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail15", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 15 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "section": "CloseContact15" + }, + { + "path": "/close-contact-name-16", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName16", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName16", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-methods-16", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber16", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail16", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 16 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "section": "CloseContact16" + }, + { + "path": "/close-contact-name-17", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName17", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName17", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-methods-17", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber17", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail17", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 17 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "section": "CloseContact17" + }, + { + "path": "/close-contact-name-18", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName18", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName18", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-methods-18", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber18", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail18", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 18 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "section": "CloseContact18" + }, + { + "path": "/close-contact-name-19", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName19", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName19", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-methods-19", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber19", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail19", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact added", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You have provided the details of 19 close contacts.", + "schema": {} + }, + { + "name": "htHdDj", + "options": {}, + "type": "Html", + "content": "

Is there another person that lives at the same address who is experiencing symptoms?

" + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact" + } + ], + "next": [ + { "path": "/close-contact-name-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "section": "CloseContact19" + }, + { + "path": "/close-contact-name-20", + "title": "Enter the name for your close contact", + "components": [ + { + "name": "ContactFirstName20", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "ContactLastName20", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + } + ], + "next": [{ "path": "/close-contact-methods-20" }], + "section": "CloseContact20" + }, + { + "path": "/close-contact-methods-20", + "title": "Enter the contact details for your close contact", + "components": [ + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" + }, + { + "name": "ContactPhoneNumber20", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "ContactEmail20", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should contact", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { "name": "RhyImE", "title": "Enter your details", "hideTitle": false }, + { + "name": "mKkWra", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "iRJvrX", + "type": "RadiosField", + "display": "Who you are completing the form for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "iRJvrX", + "type": "RadiosField", + "display": "Who you are completing the form for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYesOther", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "FFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNoOther", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "FFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYesYou", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "GFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNoYou", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "GFRnNF", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact1.AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact1.AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact2.AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact2.AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact3.AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact3.AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact4.AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact4.AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact5.AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact5.AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact6.AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact6.AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact7.AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact7.AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact8.AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact8.AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact9.AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact9.AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact10.AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact10.AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact11.AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact11.AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact12.AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact12.AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact13.AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact13.AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact14.AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact14.AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact15.AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact15.AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact16.AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact16.AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact17.AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact17.AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact18.AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact18.AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact19.AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact19.AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact20.AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "CloseContact20.AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + } +} From dad92e52113a77e4020ec24d6789c871874a5cec Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 7 Apr 2025 14:36:56 +0100 Subject: [PATCH 207/403] Symptom onset date error messages (#327) --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- .../plugins/engine/components/DatePartsField.ts | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index f440982623..1caeb58906 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2558,7 +2558,7 @@ "name": "FirstCaseOnset", "type": "DatePartsField", "title": "When did symptoms start in the first case in this outbreak?", - "errorLabel": "The date that symptoms started in the first case of this outbreak", + "errorLabel": "The date symptoms started in the first case of this outbreak", "hint": "For example, 31 3 2024", "options": { "summaryTitle": "First case: symptoms started", diff --git a/runner/src/server/plugins/engine/components/DatePartsField.ts b/runner/src/server/plugins/engine/components/DatePartsField.ts index 48450c7060..d9c634dc7f 100644 --- a/runner/src/server/plugins/engine/components/DatePartsField.ts +++ b/runner/src/server/plugins/engine/components/DatePartsField.ts @@ -37,8 +37,12 @@ export class DatePartsField extends FormComponent { optionalText: optionalText, classes: "govuk-input--width-2", customValidationMessages: { - "number.min": "{{#label}} must be between 1 and 31", - "number.max": "{{#label}} must be between 1 and 31", + "number.min": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 31", + "number.max": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 31", "number.base": `${ def.errorLabel ?? def.title } must include a day`, @@ -56,8 +60,12 @@ export class DatePartsField extends FormComponent { optionalText: optionalText, classes: "govuk-input--width-2", customValidationMessages: { - "number.min": "{{#label}} must be between 1 and 12", - "number.max": "{{#label}} must be between 1 and 12", + "number.min": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 12", + "number.max": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 12", "number.base": `${ def.errorLabel ?? def.title } must include a month`, From 77e2dbd4146b0e64e16ef42d78b769ee044b2ea5 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 9 Apr 2025 13:49:50 +0100 Subject: [PATCH 208/403] Update close-contact-form.json --- .../src/server/forms/close-contact-form.json | 842 ++++++++++-------- 1 file changed, 461 insertions(+), 381 deletions(-) diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index 098ffd9ba8..602dce8b37 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -285,7 +285,7 @@ } ], "next": [ - { "path": "/close-contact-name-1", "condition": "IfContactsYesOther" }, + { "path": "/close-contact-1", "condition": "IfContactsYesOther" }, { "path": "/summary", "condition": "IfContactsNoOther" } ] }, @@ -317,14 +317,20 @@ } ], "next": [ - { "path": "/close-contact-name-1", "condition": "IfContactsYesYou" }, + { "path": "/close-contact-1", "condition": "IfContactsYesYou" }, { "path": "/summary", "condition": "IfContactsNoYou" } ] }, { - "path": "/close-contact-name-1", - "title": "Enter the name for your close contact", + "path": "/close-contact-1", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName1", "options": {}, @@ -338,21 +344,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-1" }], - "section": "CloseContact1" - }, - { - "path": "/close-contact-methods-1", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -360,6 +357,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber1", "options": { "required": false, "optionalText": false }, @@ -376,10 +380,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-1" }], @@ -410,15 +414,21 @@ } ], "next": [ - { "path": "/close-contact-name-2", "condition": "AddAnotherYes1" }, + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, { "path": "/summary", "condition": "AddAnotherNo1" } ], "section": "CloseContact1" }, { - "path": "/close-contact-name-2", - "title": "Enter the name for your close contact", + "path": "/close-contact-2", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName2", "options": {}, @@ -432,21 +442,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-2" }], - "section": "CloseContact2" - }, - { - "path": "/close-contact-methods-2", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -454,6 +455,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber2", "options": { "required": false, "optionalText": false }, @@ -470,10 +478,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-2" }], @@ -504,15 +512,21 @@ } ], "next": [ - { "path": "/close-contact-name-3", "condition": "AddAnotherYes2" }, + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, { "path": "/summary", "condition": "AddAnotherNo2" } ], "section": "CloseContact2" }, { - "path": "/close-contact-name-3", - "title": "Enter the name for your close contact", + "path": "/close-contact-3", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName3", "options": {}, @@ -526,21 +540,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-3" }], - "section": "CloseContact3" - }, - { - "path": "/close-contact-methods-3", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -548,6 +553,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber3", "options": { "required": false, "optionalText": false }, @@ -564,10 +576,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-3" }], @@ -598,15 +610,21 @@ } ], "next": [ - { "path": "/close-contact-name-4", "condition": "AddAnotherYes3" }, + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, { "path": "/summary", "condition": "AddAnotherNo3" } ], "section": "CloseContact3" }, { - "path": "/close-contact-name-4", - "title": "Enter the name for your close contact", + "path": "/close-contact-4", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName4", "options": {}, @@ -620,21 +638,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-4" }], - "section": "CloseContact4" - }, - { - "path": "/close-contact-methods-4", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -642,6 +651,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber4", "options": { "required": false, "optionalText": false }, @@ -658,10 +674,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-4" }], @@ -692,15 +708,21 @@ } ], "next": [ - { "path": "/close-contact-name-5", "condition": "AddAnotherYes4" }, + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, { "path": "/summary", "condition": "AddAnotherNo4" } ], "section": "CloseContact4" }, { - "path": "/close-contact-name-5", - "title": "Enter the name for your close contact", + "path": "/close-contact-5", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName5", "options": {}, @@ -714,21 +736,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-5" }], - "section": "CloseContact5" - }, - { - "path": "/close-contact-methods-5", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -736,6 +749,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber5", "options": { "required": false, "optionalText": false }, @@ -752,10 +772,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-5" }], @@ -786,15 +806,21 @@ } ], "next": [ - { "path": "/close-contact-name-6", "condition": "AddAnotherYes5" }, + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, { "path": "/summary", "condition": "AddAnotherNo5" } ], "section": "CloseContact5" }, { - "path": "/close-contact-name-6", - "title": "Enter the name for your close contact", + "path": "/close-contact-6", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName6", "options": {}, @@ -808,21 +834,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-6" }], - "section": "CloseContact6" - }, - { - "path": "/close-contact-methods-6", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -830,6 +847,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber6", "options": { "required": false, "optionalText": false }, @@ -846,10 +870,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-6" }], @@ -880,15 +904,21 @@ } ], "next": [ - { "path": "/close-contact-name-7", "condition": "AddAnotherYes6" }, + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, { "path": "/summary", "condition": "AddAnotherNo6" } ], "section": "CloseContact6" }, { - "path": "/close-contact-name-7", - "title": "Enter the name for your close contact", + "path": "/close-contact-7", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName7", "options": {}, @@ -902,21 +932,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-7" }], - "section": "CloseContact7" - }, - { - "path": "/close-contact-methods-7", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -924,6 +945,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber7", "options": { "required": false, "optionalText": false }, @@ -940,10 +968,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-7" }], @@ -974,15 +1002,21 @@ } ], "next": [ - { "path": "/close-contact-name-8", "condition": "AddAnotherYes7" }, + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, { "path": "/summary", "condition": "AddAnotherNo7" } ], "section": "CloseContact7" }, { - "path": "/close-contact-name-8", - "title": "Enter the name for your close contact", + "path": "/close-contact-8", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName8", "options": {}, @@ -996,21 +1030,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-8" }], - "section": "CloseContact8" - }, - { - "path": "/close-contact-methods-8", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1018,6 +1043,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber8", "options": { "required": false, "optionalText": false }, @@ -1034,10 +1066,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1068,15 +1100,21 @@ } ], "next": [ - { "path": "/close-contact-name-9", "condition": "AddAnotherYes8" }, + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, { "path": "/summary", "condition": "AddAnotherNo8" } ], "section": "CloseContact8" }, { - "path": "/close-contact-name-9", - "title": "Enter the name for your close contact", + "path": "/close-contact-9", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName9", "options": {}, @@ -1090,21 +1128,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-9" }], - "section": "CloseContact9" - }, - { - "path": "/close-contact-methods-9", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1112,6 +1141,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber9", "options": { "required": false, "optionalText": false }, @@ -1128,10 +1164,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1162,15 +1198,21 @@ } ], "next": [ - { "path": "/close-contact-name-10", "condition": "AddAnotherYes9" }, + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, { "path": "/summary", "condition": "AddAnotherNo9" } ], "section": "CloseContact9" }, { - "path": "/close-contact-name-10", - "title": "Enter the name for your close contact", + "path": "/close-contact-10", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName10", "options": {}, @@ -1184,21 +1226,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-10" }], - "section": "CloseContact10" - }, - { - "path": "/close-contact-methods-10", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1206,6 +1239,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber10", "options": { "required": false, "optionalText": false }, @@ -1222,10 +1262,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1256,15 +1296,21 @@ } ], "next": [ - { "path": "/close-contact-name-11", "condition": "AddAnotherYes10" }, + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, { "path": "/summary", "condition": "AddAnotherNo10" } ], "section": "CloseContact10" }, { - "path": "/close-contact-name-11", - "title": "Enter the name for your close contact", + "path": "/close-contact-11", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName11", "options": {}, @@ -1278,21 +1324,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-11" }], - "section": "CloseContact11" - }, - { - "path": "/close-contact-methods-11", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1300,6 +1337,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber11", "options": { "required": false, "optionalText": false }, @@ -1316,10 +1360,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1350,15 +1394,21 @@ } ], "next": [ - { "path": "/close-contact-name-12", "condition": "AddAnotherYes11" }, + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, { "path": "/summary", "condition": "AddAnotherNo11" } ], "section": "CloseContact11" }, { - "path": "/close-contact-name-12", - "title": "Enter the name for your close contact", + "path": "/close-contact-12", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName12", "options": {}, @@ -1372,21 +1422,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-12" }], - "section": "CloseContact12" - }, - { - "path": "/close-contact-methods-12", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1394,6 +1435,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber12", "options": { "required": false, "optionalText": false }, @@ -1410,10 +1458,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1444,15 +1492,21 @@ } ], "next": [ - { "path": "/close-contact-name-13", "condition": "AddAnotherYes12" }, + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, { "path": "/summary", "condition": "AddAnotherNo12" } ], "section": "CloseContact12" }, { - "path": "/close-contact-name-13", - "title": "Enter the name for your close contact", + "path": "/close-contact-13", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName13", "options": {}, @@ -1466,21 +1520,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-13" }], - "section": "CloseContact13" - }, - { - "path": "/close-contact-methods-13", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1488,6 +1533,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber13", "options": { "required": false, "optionalText": false }, @@ -1504,10 +1556,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1538,15 +1590,21 @@ } ], "next": [ - { "path": "/close-contact-name-14", "condition": "AddAnotherYes13" }, + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, { "path": "/summary", "condition": "AddAnotherNo13" } ], "section": "CloseContact13" }, { - "path": "/close-contact-name-14", - "title": "Enter the name for your close contact", + "path": "/close-contact-14", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName14", "options": {}, @@ -1560,21 +1618,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-14" }], - "section": "CloseContact14" - }, - { - "path": "/close-contact-methods-14", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1582,6 +1631,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber14", "options": { "required": false, "optionalText": false }, @@ -1598,10 +1654,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1632,15 +1688,21 @@ } ], "next": [ - { "path": "/close-contact-name-15", "condition": "AddAnotherYes14" }, + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, { "path": "/summary", "condition": "AddAnotherNo14" } ], "section": "CloseContact14" }, { - "path": "/close-contact-name-15", - "title": "Enter the name for your close contact", + "path": "/close-contact-15", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName15", "options": {}, @@ -1654,21 +1716,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-15" }], - "section": "CloseContact15" - }, - { - "path": "/close-contact-methods-15", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1676,6 +1729,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber15", "options": { "required": false, "optionalText": false }, @@ -1692,10 +1752,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1726,15 +1786,21 @@ } ], "next": [ - { "path": "/close-contact-name-16", "condition": "AddAnotherYes15" }, + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, { "path": "/summary", "condition": "AddAnotherNo15" } ], "section": "CloseContact15" }, { - "path": "/close-contact-name-16", - "title": "Enter the name for your close contact", + "path": "/close-contact-16", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName16", "options": {}, @@ -1748,21 +1814,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-16" }], - "section": "CloseContact16" - }, - { - "path": "/close-contact-methods-16", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1770,6 +1827,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber16", "options": { "required": false, "optionalText": false }, @@ -1786,10 +1850,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1820,15 +1884,21 @@ } ], "next": [ - { "path": "/close-contact-name-17", "condition": "AddAnotherYes16" }, + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, { "path": "/summary", "condition": "AddAnotherNo16" } ], "section": "CloseContact16" }, { - "path": "/close-contact-name-17", - "title": "Enter the name for your close contact", + "path": "/close-contact-17", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName17", "options": {}, @@ -1842,21 +1912,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-17" }], - "section": "CloseContact17" - }, - { - "path": "/close-contact-methods-17", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1864,6 +1925,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber17", "options": { "required": false, "optionalText": false }, @@ -1880,10 +1948,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-17" }], @@ -1914,15 +1982,21 @@ } ], "next": [ - { "path": "/close-contact-name-18", "condition": "AddAnotherYes17" }, + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, { "path": "/summary", "condition": "AddAnotherNo17" } ], "section": "CloseContact17" }, { - "path": "/close-contact-name-18", - "title": "Enter the name for your close contact", + "path": "/close-contact-18", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName18", "options": {}, @@ -1936,21 +2010,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-18" }], - "section": "CloseContact18" - }, - { - "path": "/close-contact-methods-18", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -1958,6 +2023,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber18", "options": { "required": false, "optionalText": false }, @@ -1974,10 +2046,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2008,15 +2080,21 @@ } ], "next": [ - { "path": "/close-contact-name-19", "condition": "AddAnotherYes18" }, + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, { "path": "/summary", "condition": "AddAnotherNo18" } ], "section": "CloseContact18" }, { - "path": "/close-contact-name-19", - "title": "Enter the name for your close contact", + "path": "/close-contact-19", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName19", "options": {}, @@ -2030,21 +2108,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-19" }], - "section": "CloseContact19" - }, - { - "path": "/close-contact-methods-19", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -2052,6 +2121,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber19", "options": { "required": false, "optionalText": false }, @@ -2068,10 +2144,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2102,15 +2178,21 @@ } ], "next": [ - { "path": "/close-contact-name-20", "condition": "AddAnotherYes19" }, + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, { "path": "/summary", "condition": "AddAnotherNo19" } ], "section": "CloseContact19" }, { - "path": "/close-contact-name-20", - "title": "Enter the name for your close contact", + "path": "/close-contact-20", + "title": "Enter the contact details for your close contact", "components": [ + { + "name": "Subheader1", + "options": {}, + "type": "Html", + "content": "

Personal details

" + }, { "name": "ContactFirstName20", "options": {}, @@ -2124,21 +2206,12 @@ "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-20" }], - "section": "CloseContact20" - }, - { - "path": "/close-contact-methods-20", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader2", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} + "content": "

Contact details

" }, { "name": "ContactWarningText", @@ -2146,6 +2219,13 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} + }, { "name": "ContactPhoneNumber20", "options": { "required": false, "optionalText": false }, @@ -2162,10 +2242,10 @@ "schema": {} }, { - "name": "PreventTwoEmptyFields", - "options": {}, - "type": "Html", - "content": "" + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} } ], "next": [{ "path": "/summary" }], From 5d0779d28041ef25362915d71e13b933ff6bb5d6 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 9 Apr 2025 13:53:11 +0100 Subject: [PATCH 209/403] Add convertDetailsForCloseContact to SummaryPageController.ts --- .../pageControllers/SummaryPageController.ts | 100 +++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts index 0770ab7091..47f44e8a77 100644 --- a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts @@ -32,7 +32,10 @@ export class SummaryPageController extends PageController { } const state = await cacheService.getState(request); const viewModel = new SummaryViewModel(this.title, model, state, request); - + + if (model.basePath === "close-contact-form") { + viewModel.details = this.convertDetailsForCloseContact(viewModel.details); + } if (viewModel.endPage) { return redirectTo( request, @@ -299,4 +302,99 @@ export class SummaryPageController extends PageController { } return payApiKey; } + + convertDetailsForCloseContact(details) { + const detailItem = ({ name, url, value }) => { + return { + name: name === "Full name" ? "FullName" : name.split(" ")[0] + "Details", + path: url, + label: name, + value: value, + rawValue: value, + options: {}, + url: `/close-contact-form${url}?returnUrl=%2Fclose-contact-form%2Fsummary`, + pageId: `/close-contact-form${url}`, + type: "TextField", + title: name, + dataType: "text", + }; + }; + + const fullName = (sectionName) => { + return details + .find((item) => item.name === sectionName) + .items.filter((item) => item.label.includes("name")) + .map((item) => item.value) + .join(" "); + }; + + const contactDetails = (sectionName) => { + return details + .find((item) => item.name === sectionName) + .items.filter((item) => !/close contact|name/g.test(item.label) && item.value) + .map((item) => item.value) + .join("\n"); + }; + + const closeContactItem = (itemName) => JSON.parse( + JSON.stringify(details[0].items.find((item) => item.name === itemName)) + .replace(/'Yes' if they've/g, "Have they") + .replace(/'Yes' if you've/g, "Have you") + .replace(/ contact/g, " contact with anyone in the last 7 days?") + ); + + const isFormForSomeoneElse = details.find((item) => item.name === "mKkWra"); + + const arrayToReturn = [ + { + name: "PersonalDetails", + title: "Personal details", + items: [ + detailItem({ + name: "Your details", + value: `${fullName("RhyImE")}\n${contactDetails("RhyImE")}`, + url: "/personal-details", + }), + details[0].items.find((item) => item.name === "iRJvrX"), + ], + }, + { + name: "CloseContacts", + title: "Close contacts", + items: [closeContactItem(isFormForSomeoneElse ? "FFRnNF" : "GFRnNF")], + }, + ]; + + if (isFormForSomeoneElse) { + arrayToReturn[0].items.push( + detailItem({ + name: "Their details", + value: `${fullName("mKkWra")}\n${contactDetails("mKkWra")}`, + url: "/other-persons-details", + }), + details[0].items.find((item) => item.name === "RdSrff"), + ) + }; + + details.slice(isFormForSomeoneElse ? 3 : 2).forEach((section, i) => + arrayToReturn.push({ + name: section.name, + title: section.title, + items: [ + detailItem({ + name: "Full name", + value: fullName(section.name), + url: "/close-contact-" + (i + 1), + }), + detailItem({ + name: "Contact details", + value: contactDetails(section.name), + url: "/close-contact-" + (i + 1), + }), + ], + }) + ); + + return arrayToReturn; + } } From 4548ef09685bf746a33d7846a8aae23ec8fd19d1 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 9 Apr 2025 13:53:56 +0100 Subject: [PATCH 210/403] Add blank form --- runner/src/server/forms/test-form.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 runner/src/server/forms/test-form.json diff --git a/runner/src/server/forms/test-form.json b/runner/src/server/forms/test-form.json new file mode 100644 index 0000000000..4b8bb321cf --- /dev/null +++ b/runner/src/server/forms/test-form.json @@ -0,0 +1 @@ +{"metadata":{},"startPage":"/page","pages":[{"path":"/page","title":"Page","components":[{"name":"PbIWeF","options":{"required":false},"type":"TextField","title":"Blank"}],"next":[{"path":"/summary"}]},{"path":"/summary","title":"Summary","components":[],"next":[],"controller":"./pages/summary.js"}],"lists":[],"sections":[],"conditions":[],"fees":[],"outputs":[],"version":2,"skipSummary":true,"feeOptions":{},"authCheck":false,"declaration":""} \ No newline at end of file From 23aeb3ee5e4726c713fa8ec0f372c1fc957a80db Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 9 Apr 2025 13:55:46 +0100 Subject: [PATCH 211/403] Prettify and add webhook to test-form.json --- runner/src/server/forms/test-form.json | 47 +++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/test-form.json b/runner/src/server/forms/test-form.json index 4b8bb321cf..1f37363605 100644 --- a/runner/src/server/forms/test-form.json +++ b/runner/src/server/forms/test-form.json @@ -1 +1,46 @@ -{"metadata":{},"startPage":"/page","pages":[{"path":"/page","title":"Page","components":[{"name":"PbIWeF","options":{"required":false},"type":"TextField","title":"Blank"}],"next":[{"path":"/summary"}]},{"path":"/summary","title":"Summary","components":[],"next":[],"controller":"./pages/summary.js"}],"lists":[],"sections":[],"conditions":[],"fees":[],"outputs":[],"version":2,"skipSummary":true,"feeOptions":{},"authCheck":false,"declaration":""} \ No newline at end of file +{ + "metadata": {}, + "startPage": "/page", + "pages": [ + { + "path": "/page", + "title": "Page", + "components": [ + { + "name": "PbIWeF", + "options": { "required": false }, + "type": "TextField", + "title": "Blank" + } + ], + "next": [{ "path": "/summary" }] + }, + { + "path": "/summary", + "title": "Summary", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": true, + "feeOptions": {}, + "authCheck": false, + "declaration": "" +} From 7f13ad6b9a3e6a4879836980ca0f094b089fbc0d Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 9 Apr 2025 13:58:23 +0100 Subject: [PATCH 212/403] Remove auth check from test-form.json --- runner/src/server/forms/test-form.json | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/src/server/forms/test-form.json b/runner/src/server/forms/test-form.json index 1f37363605..4c6f0a0f46 100644 --- a/runner/src/server/forms/test-form.json +++ b/runner/src/server/forms/test-form.json @@ -41,6 +41,5 @@ "version": 2, "skipSummary": true, "feeOptions": {}, - "authCheck": false, "declaration": "" } From 62397e5c8bf058820ac0fe31ce4aee1f709b4161 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:19:51 +0100 Subject: [PATCH 213/403] CAR-1464 Limit magic link to single use (#328) --- .../pageControllers/MagicLinkController.ts | 32 +++++++++++-------- .../pageControllers/ResubmitPageController.ts | 10 ++++++ runner/src/server/services/cacheService.ts | 23 +++++++++++++ 3 files changed, 51 insertions(+), 14 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts index c96e39b0c2..4fa325d2b8 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts @@ -14,17 +14,27 @@ export class MagicLinkController extends PageController { makeGetRouteHandler() { return async (request: HapiRequest, h: HapiResponseToolkit) => { const email = request.query.email; - const signature = request.query.signature; + const hmac = request.query.signature; const requestTime = request.query.request_time; const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; - const validation = await validateHmac( + const validation = await validateHmac(email, hmac, requestTime, hmacKey); + + const { cacheService } = request.services([]); + + const state = await cacheService.getState(request); + + const isMagicLinkRecordActive = await cacheService.searchForMagicLinkRecord( email, - signature, - requestTime, - hmacKey + hmac ); + if (!isMagicLinkRecordActive) { + return h.redirect("/magic-link/expired").code(302); + } + + await cacheService.deleteMagicLinkRecord(email, hmac); + if (!validation.isValid) { // Handle different invalid token cases switch (validation.reason) { @@ -39,13 +49,12 @@ export class MagicLinkController extends PageController { this.langFromRequest(request); - const { cacheService } = request.services([]); const model = this.model; if (this.model.def.skipSummary) { return this.makePostRouteHandler()(request, h); } - const state = await cacheService.getState(request); + const viewModel = new SummaryViewModel(this.title, model, state, request); if (viewModel.endPage) { @@ -113,16 +122,11 @@ export class MagicLinkController extends PageController { makePostRouteHandler() { return async (request: HapiRequest, h: HapiResponseToolkit) => { const email = request.query.email; - const signature = request.query.signature; + const hmac = request.query.signature; const requestTime = request.query.request_time; const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; - const validation = await validateHmac( - email, - signature, - requestTime, - hmacKey - ); + const validation = await validateHmac(email, hmac, requestTime, hmacKey); if (validation.isValid) { const token = Jwt.token.generate( diff --git a/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts index ae65359fb6..0bdcd31618 100644 --- a/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts @@ -146,6 +146,16 @@ export class ResubmitPageController extends PageController { hmacKey ); + // Check the hapi server for a record with that email + const foundHmac = await cacheService.searchForMagicLinkRecord( + email, + hmac + ); + + if (!foundHmac) { + await cacheService.createMagicLinkRecord(email, hmac); + } + const hmacUrlStart = "/magic-link/return?email="; const hmacUrl = hmacUrlStart.concat( diff --git a/runner/src/server/services/cacheService.ts b/runner/src/server/services/cacheService.ts index a18906e6b0..d8e338777d 100644 --- a/runner/src/server/services/cacheService.ts +++ b/runner/src/server/services/cacheService.ts @@ -127,6 +127,25 @@ export class CacheService { } } + async createMagicLinkRecord(email: string, hmac: string) { + const key = this.MagicLinkKey(email, hmac); + const value = { + active: true, + }; + return this.cache.set(key, value, config.sessionTimeout); + } + + async searchForMagicLinkRecord(email: string, hmac: string) { + const key = this.MagicLinkKey(email, hmac); + const emailCached = await this.cache.get(key); + return emailCached ?? null; + } + + async deleteMagicLinkRecord(email: string, hmac: string) { + const key = this.MagicLinkKey(email, hmac); + return await this.cache.drop(key); + } + /** * The key used to store user session data against. * If there are multiple forms on the same runner instance, for example `form-a` and `form-a-feedback` this will prevent CacheService from clearing data from `form-a` if a user gave feedback before they finished `form-a` @@ -150,6 +169,10 @@ export class CacheService { id: jwt, }; } + + MagicLinkKey(email, hmac) { + return `${email}+${hmac}`; + } } export const catboxProvider = () => { From e1e102541917422eb50767e772a6b7a988c835d6 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:42:22 +0100 Subject: [PATCH 214/403] CAR-601 Fix error messages - validate against past two months (#330) --- runner/src/server/forms/ReportAnOutbreak.json | 6 ++++-- .../src/server/plugins/engine/components/DatePartsField.ts | 4 ++++ .../engine/pageControllers/DateComparisonPageController.ts | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 1caeb58906..30cc4a26c3 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1692,7 +1692,8 @@ "dayMonthYear": "Enter the date symptoms started", "nonNumeric": "The date symptoms started must be a real date", "date.max": "The date symptoms started must be in the past", - "date.base": "The date symptoms started must be a real date" + "date.base": "The date symptoms started must be a real date", + "date.min": "The date symptoms started must be in the past two months" } }, "type": "DatePartsField", @@ -2568,7 +2569,8 @@ "nonNumeric": "The date symptoms started in the first case of this outbreak must be a real date", "dayMonthYear": "Enter the date symptoms started in the first case of this outbreak", "date.max": "The date symptoms started in the first case of this outbreak must be in the past", - "date.base": "The date symptoms started in the first case of this outbreak must be a real date" + "date.base": "The date symptoms started in the first case of this outbreak must be a real date", + "date.min": "The date symptoms started in the first case of this outbreak must be in the past two months" } } }, diff --git a/runner/src/server/plugins/engine/components/DatePartsField.ts b/runner/src/server/plugins/engine/components/DatePartsField.ts index d9c634dc7f..f516589818 100644 --- a/runner/src/server/plugins/engine/components/DatePartsField.ts +++ b/runner/src/server/plugins/engine/components/DatePartsField.ts @@ -83,6 +83,10 @@ export class DatePartsField extends FormComponent { optionalText: optionalText, classes: "govuk-input--width-4", customValidationMessages: { + "number.min": `${ + def.options?.customValidationMessages?.["date.min"] || + "year must be 1000 or higher" + }`, "number.base": `${ def.errorLabel ?? def.title } must include a year`, diff --git a/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts b/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts index 322bb38819..b2d8f980e1 100644 --- a/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts @@ -2,6 +2,7 @@ import joi from "joi"; import { PageController } from "./PageController"; import { format, parseISO } from "date-fns"; import { FormSubmissionErrors } from "../types"; +import { subMonths } from "date-fns"; /** * DateComparisonPageController validates that: @@ -36,6 +37,7 @@ export class DateComparisonPageController extends PageController { .date() .required() .max("now") // Prevents dates in the future + .min(subMonths(new Date(), 2)) // Prevents dates more than 2 months in the past .messages({ ...this.firstDateComponent?.options?.customValidationMessages, }), From d874c27d214dfc25facfba6c1f0e6cc253834f4a Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 10 Apr 2025 09:14:49 +0100 Subject: [PATCH 215/403] Revert "Close contact" (#332) --- .../src/server/forms/close-contact-form.json | 844 ++++++++---------- runner/src/server/forms/test-form.json | 45 - .../pageControllers/SummaryPageController.ts | 100 +-- 3 files changed, 383 insertions(+), 606 deletions(-) delete mode 100644 runner/src/server/forms/test-form.json diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index 602dce8b37..098ffd9ba8 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -285,7 +285,7 @@ } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYesOther" }, + { "path": "/close-contact-name-1", "condition": "IfContactsYesOther" }, { "path": "/summary", "condition": "IfContactsNoOther" } ] }, @@ -317,20 +317,14 @@ } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYesYou" }, + { "path": "/close-contact-name-1", "condition": "IfContactsYesYou" }, { "path": "/summary", "condition": "IfContactsNoYou" } ] }, { - "path": "/close-contact-1", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-1", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName1", "options": {}, @@ -344,12 +338,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-methods-1", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -357,13 +360,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber1", "options": { "required": false, "optionalText": false }, @@ -380,10 +376,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -414,21 +410,15 @@ } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/close-contact-name-2", "condition": "AddAnotherYes1" }, { "path": "/summary", "condition": "AddAnotherNo1" } ], "section": "CloseContact1" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-2", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName2", "options": {}, @@ -442,12 +432,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-methods-2", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -455,13 +454,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber2", "options": { "required": false, "optionalText": false }, @@ -478,10 +470,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -512,21 +504,15 @@ } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/close-contact-name-3", "condition": "AddAnotherYes2" }, { "path": "/summary", "condition": "AddAnotherNo2" } ], "section": "CloseContact2" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-3", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName3", "options": {}, @@ -540,12 +526,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-methods-3", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -553,13 +548,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber3", "options": { "required": false, "optionalText": false }, @@ -576,10 +564,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -610,21 +598,15 @@ } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/close-contact-name-4", "condition": "AddAnotherYes3" }, { "path": "/summary", "condition": "AddAnotherNo3" } ], "section": "CloseContact3" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-4", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName4", "options": {}, @@ -638,12 +620,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-methods-4", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -651,13 +642,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber4", "options": { "required": false, "optionalText": false }, @@ -674,10 +658,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -708,21 +692,15 @@ } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/close-contact-name-5", "condition": "AddAnotherYes4" }, { "path": "/summary", "condition": "AddAnotherNo4" } ], "section": "CloseContact4" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-5", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName5", "options": {}, @@ -736,12 +714,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-methods-5", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -749,13 +736,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber5", "options": { "required": false, "optionalText": false }, @@ -772,10 +752,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -806,21 +786,15 @@ } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/close-contact-name-6", "condition": "AddAnotherYes5" }, { "path": "/summary", "condition": "AddAnotherNo5" } ], "section": "CloseContact5" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-6", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName6", "options": {}, @@ -834,12 +808,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-methods-6", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -847,13 +830,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber6", "options": { "required": false, "optionalText": false }, @@ -870,10 +846,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -904,21 +880,15 @@ } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/close-contact-name-7", "condition": "AddAnotherYes6" }, { "path": "/summary", "condition": "AddAnotherNo6" } ], "section": "CloseContact6" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-7", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName7", "options": {}, @@ -932,12 +902,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-methods-7", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -945,13 +924,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber7", "options": { "required": false, "optionalText": false }, @@ -968,10 +940,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1002,21 +974,15 @@ } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/close-contact-name-8", "condition": "AddAnotherYes7" }, { "path": "/summary", "condition": "AddAnotherNo7" } ], "section": "CloseContact7" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-8", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName8", "options": {}, @@ -1030,12 +996,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-methods-8", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1043,13 +1018,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber8", "options": { "required": false, "optionalText": false }, @@ -1066,10 +1034,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1100,21 +1068,15 @@ } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/close-contact-name-9", "condition": "AddAnotherYes8" }, { "path": "/summary", "condition": "AddAnotherNo8" } ], "section": "CloseContact8" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-9", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName9", "options": {}, @@ -1128,12 +1090,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-methods-9", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1141,13 +1112,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber9", "options": { "required": false, "optionalText": false }, @@ -1164,10 +1128,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1198,21 +1162,15 @@ } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/close-contact-name-10", "condition": "AddAnotherYes9" }, { "path": "/summary", "condition": "AddAnotherNo9" } ], "section": "CloseContact9" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-10", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName10", "options": {}, @@ -1226,12 +1184,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-methods-10", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1239,13 +1206,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber10", "options": { "required": false, "optionalText": false }, @@ -1262,10 +1222,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1296,21 +1256,15 @@ } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/close-contact-name-11", "condition": "AddAnotherYes10" }, { "path": "/summary", "condition": "AddAnotherNo10" } ], "section": "CloseContact10" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-11", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName11", "options": {}, @@ -1324,12 +1278,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-methods-11", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1337,13 +1300,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber11", "options": { "required": false, "optionalText": false }, @@ -1360,10 +1316,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1394,21 +1350,15 @@ } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/close-contact-name-12", "condition": "AddAnotherYes11" }, { "path": "/summary", "condition": "AddAnotherNo11" } ], "section": "CloseContact11" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for your close contact", - "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, + "path": "/close-contact-name-12", + "title": "Enter the name for your close contact", + "components": [ { "name": "ContactFirstName12", "options": {}, @@ -1422,12 +1372,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-methods-12", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1435,13 +1394,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber12", "options": { "required": false, "optionalText": false }, @@ -1458,10 +1410,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1492,21 +1444,15 @@ } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/close-contact-name-13", "condition": "AddAnotherYes12" }, { "path": "/summary", "condition": "AddAnotherNo12" } ], "section": "CloseContact12" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-13", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName13", "options": {}, @@ -1520,12 +1466,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-methods-13", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1533,13 +1488,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber13", "options": { "required": false, "optionalText": false }, @@ -1556,10 +1504,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1590,21 +1538,15 @@ } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/close-contact-name-14", "condition": "AddAnotherYes13" }, { "path": "/summary", "condition": "AddAnotherNo13" } ], "section": "CloseContact13" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-14", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName14", "options": {}, @@ -1618,12 +1560,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-methods-14", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1631,13 +1582,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber14", "options": { "required": false, "optionalText": false }, @@ -1654,10 +1598,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1688,21 +1632,15 @@ } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/close-contact-name-15", "condition": "AddAnotherYes14" }, { "path": "/summary", "condition": "AddAnotherNo14" } ], "section": "CloseContact14" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-15", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName15", "options": {}, @@ -1716,12 +1654,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-methods-15", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1729,13 +1676,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber15", "options": { "required": false, "optionalText": false }, @@ -1752,10 +1692,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1786,21 +1726,15 @@ } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/close-contact-name-16", "condition": "AddAnotherYes15" }, { "path": "/summary", "condition": "AddAnotherNo15" } ], "section": "CloseContact15" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-16", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName16", "options": {}, @@ -1814,12 +1748,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-methods-16", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1827,13 +1770,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber16", "options": { "required": false, "optionalText": false }, @@ -1850,10 +1786,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1884,21 +1820,15 @@ } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/close-contact-name-17", "condition": "AddAnotherYes16" }, { "path": "/summary", "condition": "AddAnotherNo16" } ], "section": "CloseContact16" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-17", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName17", "options": {}, @@ -1912,12 +1842,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-methods-17", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -1925,13 +1864,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber17", "options": { "required": false, "optionalText": false }, @@ -1948,10 +1880,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -1982,21 +1914,15 @@ } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/close-contact-name-18", "condition": "AddAnotherYes17" }, { "path": "/summary", "condition": "AddAnotherNo17" } ], "section": "CloseContact17" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-18", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName18", "options": {}, @@ -2010,12 +1936,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-methods-18", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -2023,13 +1958,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber18", "options": { "required": false, "optionalText": false }, @@ -2046,10 +1974,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2080,21 +2008,15 @@ } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/close-contact-name-19", "condition": "AddAnotherYes18" }, { "path": "/summary", "condition": "AddAnotherNo18" } ], "section": "CloseContact18" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-19", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName19", "options": {}, @@ -2108,12 +2030,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-methods-19", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -2121,13 +2052,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber19", "options": { "required": false, "optionalText": false }, @@ -2144,10 +2068,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2178,21 +2102,15 @@ } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/close-contact-name-20", "condition": "AddAnotherYes19" }, { "path": "/summary", "condition": "AddAnotherNo19" } ], "section": "CloseContact19" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for your close contact", + "path": "/close-contact-name-20", + "title": "Enter the name for your close contact", "components": [ - { - "name": "Subheader1", - "options": {}, - "type": "Html", - "content": "

Personal details

" - }, { "name": "ContactFirstName20", "options": {}, @@ -2206,12 +2124,21 @@ "type": "TextField", "title": "Last name", "schema": {} - }, + } + ], + "next": [{ "path": "/close-contact-methods-20" }], + "section": "CloseContact20" + }, + { + "path": "/close-contact-methods-20", + "title": "Enter the contact details for your close contact", + "components": [ { - "name": "Subheader2", + "name": "ContactHintText", "options": {}, "type": "Html", - "content": "

Contact details

" + "content": "Please provide at least one contact detail for the close contact.

", + "schema": {} }, { "name": "ContactWarningText", @@ -2219,13 +2146,6 @@ "type": "Html", "content": "
\n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
" }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

", - "schema": {} - }, { "name": "ContactPhoneNumber20", "options": { "required": false, "optionalText": false }, @@ -2242,10 +2162,10 @@ "schema": {} }, { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "name": "PreventTwoEmptyFields", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/test-form.json b/runner/src/server/forms/test-form.json deleted file mode 100644 index 4c6f0a0f46..0000000000 --- a/runner/src/server/forms/test-form.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "metadata": {}, - "startPage": "/page", - "pages": [ - { - "path": "/page", - "title": "Page", - "components": [ - { - "name": "PbIWeF", - "options": { "required": false }, - "type": "TextField", - "title": "Blank" - } - ], - "next": [{ "path": "/summary" }] - }, - { - "path": "/summary", - "title": "Summary", - "components": [], - "next": [], - "controller": "./pages/summary.js" - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": true, - "feeOptions": {}, - "declaration": "" -} diff --git a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts index 47f44e8a77..0770ab7091 100644 --- a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts @@ -32,10 +32,7 @@ export class SummaryPageController extends PageController { } const state = await cacheService.getState(request); const viewModel = new SummaryViewModel(this.title, model, state, request); - - if (model.basePath === "close-contact-form") { - viewModel.details = this.convertDetailsForCloseContact(viewModel.details); - } + if (viewModel.endPage) { return redirectTo( request, @@ -302,99 +299,4 @@ export class SummaryPageController extends PageController { } return payApiKey; } - - convertDetailsForCloseContact(details) { - const detailItem = ({ name, url, value }) => { - return { - name: name === "Full name" ? "FullName" : name.split(" ")[0] + "Details", - path: url, - label: name, - value: value, - rawValue: value, - options: {}, - url: `/close-contact-form${url}?returnUrl=%2Fclose-contact-form%2Fsummary`, - pageId: `/close-contact-form${url}`, - type: "TextField", - title: name, - dataType: "text", - }; - }; - - const fullName = (sectionName) => { - return details - .find((item) => item.name === sectionName) - .items.filter((item) => item.label.includes("name")) - .map((item) => item.value) - .join(" "); - }; - - const contactDetails = (sectionName) => { - return details - .find((item) => item.name === sectionName) - .items.filter((item) => !/close contact|name/g.test(item.label) && item.value) - .map((item) => item.value) - .join("\n"); - }; - - const closeContactItem = (itemName) => JSON.parse( - JSON.stringify(details[0].items.find((item) => item.name === itemName)) - .replace(/'Yes' if they've/g, "Have they") - .replace(/'Yes' if you've/g, "Have you") - .replace(/ contact/g, " contact with anyone in the last 7 days?") - ); - - const isFormForSomeoneElse = details.find((item) => item.name === "mKkWra"); - - const arrayToReturn = [ - { - name: "PersonalDetails", - title: "Personal details", - items: [ - detailItem({ - name: "Your details", - value: `${fullName("RhyImE")}\n${contactDetails("RhyImE")}`, - url: "/personal-details", - }), - details[0].items.find((item) => item.name === "iRJvrX"), - ], - }, - { - name: "CloseContacts", - title: "Close contacts", - items: [closeContactItem(isFormForSomeoneElse ? "FFRnNF" : "GFRnNF")], - }, - ]; - - if (isFormForSomeoneElse) { - arrayToReturn[0].items.push( - detailItem({ - name: "Their details", - value: `${fullName("mKkWra")}\n${contactDetails("mKkWra")}`, - url: "/other-persons-details", - }), - details[0].items.find((item) => item.name === "RdSrff"), - ) - }; - - details.slice(isFormForSomeoneElse ? 3 : 2).forEach((section, i) => - arrayToReturn.push({ - name: section.name, - title: section.title, - items: [ - detailItem({ - name: "Full name", - value: fullName(section.name), - url: "/close-contact-" + (i + 1), - }), - detailItem({ - name: "Contact details", - value: contactDetails(section.name), - url: "/close-contact-" + (i + 1), - }), - ], - }) - ); - - return arrayToReturn; - } } From ffce0436be4f6530bcf6f31b8c8d12ec0d7cb863 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Thu, 10 Apr 2025 11:50:17 +0100 Subject: [PATCH 216/403] Update development.json --- runner/config/development.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/config/development.json b/runner/config/development.json index be126c8611..e5bb696b84 100644 --- a/runner/config/development.json +++ b/runner/config/development.json @@ -1,6 +1,6 @@ { "isTest": true, "previewMode": true, - "enforceCsrf": false, + "enforceCsrf": true, "env": "development" } From f2052aacbf67f2defb09ddfe31b3b1ee7666a094 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:18:43 +0100 Subject: [PATCH 217/403] CAR-1261 update check your answers content (#336) --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 30cc4a26c3..d642a73215 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3069,7 +3069,7 @@ "options": { "customText": { "insetText": "You will only see answers to questions that are relevant to your report.", - "endContent": "

Now send your report

Your responses will be shared with your local health protection teams. They will use your information to help you manage your situation.

By submitting this report you confirm that the details are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information for service users or staff, for example names or dates of birth.

" + "endContent": "

Now send your report

Your responses will be shared with your local UKHSA health protection team, local authority, local community infection prevention control team and the NHS. They will use your information to help you manage your situation.

By submitting this report you confirm that the details are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information for service users, for example names or dates of birth.

" } }, "next": [] From a6995d0018344103c73cf0655be6cddb046356e4 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 10 Apr 2025 14:12:15 +0100 Subject: [PATCH 218/403] CAR-1164 Remove full stop from hint text (#337) --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index d642a73215..8e7277404c 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -100,7 +100,7 @@ "list": "YesNo", "nameHasError": false, "title": "Do you have any positive test results for an acute respiratory infection?", - "hint": "The infection must have been confirmed by a test, for example a lateral flow test, flu swab test or a laboratory test.", + "hint": "The infection must have been confirmed by a test, for example a lateral flow test, flu swab test or a laboratory test", "schema": {}, "values": { "type": "listRef" From e42dfc040c9e2c08d2017ac7d79ddadbfe66cd1f Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 11 Apr 2025 10:14:00 +0100 Subject: [PATCH 219/403] Revert "Enable CSRF in Development" --- runner/config/development.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/config/development.json b/runner/config/development.json index e5bb696b84..be126c8611 100644 --- a/runner/config/development.json +++ b/runner/config/development.json @@ -1,6 +1,6 @@ { "isTest": true, "previewMode": true, - "enforceCsrf": true, + "enforceCsrf": false, "env": "development" } From c5f01fea706efbc2aa6f9795dc007738d6886ea0 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 14 Apr 2025 09:08:11 +0100 Subject: [PATCH 220/403] CAR-1689 Add in HPT region selection question at start of journey (#339) --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + runner/src/server/forms/ReportAnOutbreak.json | 177 ++++++++++++++---- runner/src/server/forms/magic-link.json | 8 +- .../MagicLinkRedirectController.ts | 10 + .../pageControllers/PageControllerBase.ts | 14 +- .../plugins/engine/pageControllers/helpers.ts | 2 + .../plugins/engine/pageControllers/index.ts | 1 + 8 files changed, 177 insertions(+), 37 deletions(-) create mode 100644 runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 3b6ff902fb..512e45286c 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -12,6 +12,7 @@ export type Link = Next; export interface Page { title: string; path: string; + unauthenticated?: boolean; controller: string; components?: ComponentDef[]; section?: string; // the section ID diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index c19efc9593..a67428fff9 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -112,6 +112,7 @@ const nextSchema = joi.object().keys({ const pageSchema = joi.object().keys({ path: joi.string().required().disallow("/status"), title: localisedString, + unauthenticated: joi.boolean().optional(), section: joi.string(), sectionForExitJourneySummaryPages: joi.string(), sectionForMultiSummaryPages: joi.string(), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8e7277404c..8be5a22110 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -12,7 +12,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

From: UK Health Security Agency
Applies to England

\n

You can use this service if you provide adult social care. This includes a care home, supported living or extra care.

\n

Use this service to report:

\n
    \n
  • a single confirmed case of flu in your setting
  • \n
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n

Before you start

\n

If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

\n

If you cannot test people, do not wait. Report as soon as possible.

\n

You'll need to know the:

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\nStart now\n

Updating about an existing outbreak

\n

Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

" + "content": "

From: UK Health Security Agency
Applies to England

\n

You can use this service if you provide adult social care. This includes a care home, supported living or extra care.

\n

Use this service to report:

\n
    \n
  • a single confirmed case of flu in your setting
  • \n
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n

Before you start

\n

If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

\n

If you cannot test people, do not wait. Report as soon as possible.

\n

You'll need to know the:

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\nStart now\n

Updating about an existing outbreak

\n

Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

" } ], "sidebarContent": { @@ -31,12 +31,77 @@ }, "controller": "MultiStartPageController", "showContinueButton": false, + "next": [ + { + "path": "/hpt-region" + } + ] + }, + { + "path": "/hpt-region", + "title": "Where is your adult social care setting?", + "sectionForEndSummaryPages": "SettingDetails", + "unauthenticated": true, + "components": [ + { + "name": "IntroPara", + "type": "Para", + "content": "This service is only available in some regions of England." + }, + { + "name": "HPT", + "options": { + "summaryTitle": "Local UKHSA health protection team", + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select your local UKHSA health protection team" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": "Which acute respiratory infection do you have a positive test result for? ", + "list": "HPTs", + "values": { + "type": "listRef" + } + }, + { + "name": "HPTLink", + "options": {}, + "type": "Para", + "content": "\n Use your postcode to find your local health protection team (opens in a new tab)\n", + "schema": {} + } + ], + "next": [ + { "path": "/magic-link-redirect", "condition": "HPTRegionActive" }, + { + "path": "/service-not-available" + } + ] + }, + { + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", "next": [ { "path": "/setting" } ] }, + { + "path": "/service-not-available", + "unauthenticated": true, + "title": "This service is not available in the {{ HPT }} region", + "components": [ + { + "name": "ServiceNotAvailableContent", + "type": "Para", + "content": "Phone your local UKHSA health protection team to report:
  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting
  • " + } + ] + }, { "path": "/setting", "title": "What type of adult social care do you provide?", @@ -2729,32 +2794,6 @@ "regex": "^[A-z]{1,2}[0-9][A-z0-9]?[\\s]*[0-9]{1,2}[ABD-hJLNP-uW-z]{2}$" } }, - { - "name": "HPT", - "options": { - "summaryTitle": "Local UKHSA health protection team", - "required": true, - "customValidationMessages": { - "string.empty": "Select your local UKHSA health protection team", - "any.only": "Select your local UKHSA health protection team" - } - }, - "type": "SelectField", - "title": "Your local UKHSA health protection team", - "list": "sjgMDe", - "nameHasError": false, - "schema": {}, - "values": { - "type": "listRef" - } - }, - { - "name": "nMOTry", - "options": {}, - "type": "Para", - "content": "\n Use your postcode to find your local health protection team (opens in a new tab)\n", - "schema": {} - }, { "name": "CQCRegistered", "options": { @@ -3441,19 +3480,43 @@ }, { "title": "HPTs", - "name": "sjgMDe", + "name": "HPTs", "type": "string", "items": [ { - "text": "East of England HPT", - "value": "East of England HPT" + "text": "North East", + "value": "North East" + }, + { + "text": "North West", + "value": "North West" + }, + { + "text": "Yorkshire and the Humber", + "value": "Yorkshire and the Humber" + }, + { + "text": "East Midlands", + "value": "East Midlands" }, { - "text": "West Midlands HPT", + "text": "West Midlands", "value": "West Midlands HPT" }, { - "text": "South West HPT", + "text": "East of England", + "value": "East of England HPT" + }, + { + "text": "London", + "value": "London" + }, + { + "text": "South East", + "value": "South East" + }, + { + "text": "South West", "value": "South West HPT" } ] @@ -3533,6 +3596,56 @@ } ], "conditions": [ + { + "displayName": "HPTRegionActive", + "name": "HPTRegionActive", + "value": { + "name": "HPTRegionActive", + "conditions": [ + { + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "West Midlands HPT", + "display": "West Midlands" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "East of England HPT", + "display": "East of England" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "South West HPT", + "display": "South West" + } + } + ] + } + }, { "displayName": "UnknownARI&ServiceOrStaff:ServiceUsers", "name": "UnknownARI&ServiceOrStaff:ServiceUsers", diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index d50d4b0de6..933839b77b 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -6,14 +6,16 @@ "pages": [ { "path": "/start", - "controller": "MagicLinkStartPageController" + "controller": "MagicLinkStartPageController", + "unauthenticated": true }, { "title": "What is your email address?", "path": "/email", + "unauthenticated": true, "continueButtonText": "Continue", "showContinueButton": true, - "backLinkFallback": "/ReportAnOutbreak/start", + "backLinkFallback": "/ReportAnOutbreak/hpt-region", "components": [ { "name": "EmailIntro", @@ -55,6 +57,7 @@ { "path": "/check-your-email", "title": "Check your email", + "unauthenticated": true, "backLinkFallback": "/magic-link/magic-link", "components": [ { @@ -69,6 +72,7 @@ { "path": "/resubmit-email", "title": "We've sent you another email", + "unauthenticated": true, "backLinkFallback": "/check-your-email", "components": [ { diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts new file mode 100644 index 0000000000..5ca1114e88 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts @@ -0,0 +1,10 @@ +import { PageController } from "server/plugins/engine/pageControllers/PageController"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; + +export class MagicLinkRedirectController extends PageController { + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + return h.redirect("/magic-link/start").code(302); + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index a270ac34fe..f58a707ba0 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -502,7 +502,11 @@ export class PageControllerBase { : redirectTo(request, h, `/${this.model.basePath}${startPage!}`); } - if (this.model.def.authentication && this.model.def.toggle === true) { + if ( + this.model.def.authentication && + this.model.def.toggle === true && + this.pageDef.unauthenticated !== true + ) { const authCookie = request.state.auth_token; // Check for the auth cookie if (!authCookie && !isStartPage && this.model.def.authentication) { @@ -755,12 +759,16 @@ export class PageControllerBase { } const { cacheService } = request.services([]); - if (this.model.def.authentication && this.model.def.toggle === true) { + if ( + this.model.def.authentication && + this.model.def.toggle === true && + this.pageDef.unauthenticated !== true + ) { const startPage = this.model.def.startPage; const isStartPage = this.path === `${startPage}`; const currentPath = `/${this.model.basePath}${this.path}${request.url.search}`; const authCookie = request.state.auth_token; // Check for the auth cookie - if (!authCookie && !isStartPage && this.model.def.authentication) { + if (!authCookie && !isStartPage) { // If the auth cookie is missing and it's not the start page, redirect if (currentPath !== `/${this.model.basePath}${startPage!}`) { return h.redirect(`/${this.model.basePath}${startPage!}`); diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index 309c2b0bd8..a2a24795f6 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -17,6 +17,7 @@ import { MagicLinkController } from "./MagicLinkController"; import { MagicLinkStartPageController } from "./MagicLinkStartPageController"; import { CustomSummaryPageController } from "./CustomSummaryPageController"; import { DateComparisonPageController } from "./DateComparisonPageController"; +import { MagicLinkRedirectController } from "./MagicLinkRedirectController"; const PageControllers = { DobPageController, @@ -35,6 +36,7 @@ const PageControllers = { MagicLinkStartPageController, CustomSummaryPageController, DateComparisonPageController, + MagicLinkRedirectController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index 9ae47f3a60..b15e70447c 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -12,3 +12,4 @@ export { MagicLinkController } from "./MagicLinkController"; export { MagicLinkStartPageController } from "./MagicLinkStartPageController"; export { CustomSummaryPageController } from "./CustomSummaryPageController"; export { DateComparisonPageController } from "./DateComparisonPageController"; +export { MagicLinkRedirectController } from "./MagicLinkRedirectController"; From 1c759e961dea580203a4de3972146c9e9158a300 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:12:13 +0100 Subject: [PATCH 221/403] CAR-1689 fix question text (#340) --- runner/src/server/forms/ReportAnOutbreak.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 8be5a22110..de448e7da2 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -59,7 +59,8 @@ }, "type": "RadiosField", "nameHasError": false, - "title": "Which acute respiratory infection do you have a positive test result for? ", + "title": " ", + "hint": "Select your local UKHSA health protection team", "list": "HPTs", "values": { "type": "listRef" From 58383527f9020316627542996858baf361f4c811 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 14 Apr 2025 15:41:51 +0100 Subject: [PATCH 222/403] Set cookies securely by default when using HTTPS. (#341) Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- designer/server/config.ts | 3 +++ designer/server/plugins/session.ts | 2 +- runner/config/custom-environment-variables.json | 1 + runner/config/default.js | 1 + runner/config/development.json | 1 + runner/config/production.json | 1 + runner/config/test.json | 1 + runner/src/server/plugins/crumb.ts | 2 +- runner/src/server/plugins/session.ts | 2 +- runner/src/server/utils/configSchema.ts | 1 + 10 files changed, 12 insertions(+), 3 deletions(-) diff --git a/designer/server/config.ts b/designer/server/config.ts index 833e331b5b..d1a222b760 100644 --- a/designer/server/config.ts +++ b/designer/server/config.ts @@ -22,6 +22,7 @@ export interface Config { lastTag: string; sessionTimeout: number; sessionCookiePassword: string; + httpsCookieSecureAttribute: boolean; awsCredentials?: CredentialsOptions; } @@ -49,6 +50,7 @@ const schema = joi.object({ lastTag: joi.string().default("undefined"), sessionTimeout: joi.number().default(sessionSTimeoutInMilliseconds), sessionCookiePassword: joi.string().optional(), + httpsCookieSecureAttribute: joi.boolean().optional(), }); // Build config @@ -66,6 +68,7 @@ const config = { lastTag: process.env.LAST_TAG || process.env.LAST_TAG_GH, sessionTimeout: process.env.SESSION_TIMEOUT, sessionCookiePassword: process.env.SESSION_COOKIE_PASSWORD, + httpsCookieSecureAttribute: process.env.HTTPS_COOKIE_SECURE_ATTRIBUTE, }; // Validate config diff --git a/designer/server/plugins/session.ts b/designer/server/plugins/session.ts index 63820a95a8..c273b46e59 100644 --- a/designer/server/plugins/session.ts +++ b/designer/server/plugins/session.ts @@ -16,7 +16,7 @@ export const configureYarPlugin = (): ServerRegisterPluginObject => { .fill(0) .map(() => Math.random().toString(36).charAt(2)) .join(""), - isSecure: config.isProd, + isSecure: config.httpsCookieSecureAttribute, isHttpOnly: true, isSameSite: "Lax", }, diff --git a/runner/config/custom-environment-variables.json b/runner/config/custom-environment-variables.json index f5a1e49330..247fc1c72b 100644 --- a/runner/config/custom-environment-variables.json +++ b/runner/config/custom-environment-variables.json @@ -27,6 +27,7 @@ "sessionTimeout": "SESSION_TIMEOUT", "confirmationSessionTimeout": "CONFIRMATION_SESSION_TIMEOUT", "sessionCookiePassword": "SESSION_COOKIE_PASSWORD", + "sessionCookieSecureAttribute": "SESSION_COOKIE_SECURE_ATTRIBUTE", "fromEmailAddress": "FROM_EMAIL_ADDRESS", "serviceStartPage": "SERVICE_START_PAGE", "privacyPolicyUrl": "PRIVACY_POLICY_URL", diff --git a/runner/config/default.js b/runner/config/default.js index 016c807496..f29d93c2be 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -68,6 +68,7 @@ module.exports = { sessionTimeout: 20 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. + httpsCookieSecureAttribute: true, // Assumed usage of HTTPS. Set to false if you are using HTTP. sessionCookiePassword: "${SessionCookies.Password}", redisHost: "${Redis.Host}", redisPort: 6379, diff --git a/runner/config/development.json b/runner/config/development.json index be126c8611..86ac5f1e99 100644 --- a/runner/config/development.json +++ b/runner/config/development.json @@ -2,5 +2,6 @@ "isTest": true, "previewMode": true, "enforceCsrf": false, + "httpsCookieSecureAttribute": true, "env": "development" } diff --git a/runner/config/production.json b/runner/config/production.json index 3e552e02b8..886d3caef3 100644 --- a/runner/config/production.json +++ b/runner/config/production.json @@ -2,5 +2,6 @@ "env": "production", "logPrettyPrint": false, "enforceCsrf": true, + "httpsCookieSecureAttribute": true, "previewMode": false } diff --git a/runner/config/test.json b/runner/config/test.json index 82c6aa5adc..05b60fc7f7 100644 --- a/runner/config/test.json +++ b/runner/config/test.json @@ -7,6 +7,7 @@ "isTest": true, "previewMode": true, "enforceCsrf": true, + "httpsCookieSecureAttribute": true, "initialisedSessionKey": "predictable-key", "env": "test", "documentUploadApiUrl": "http://localhost:9000" diff --git a/runner/src/server/plugins/crumb.ts b/runner/src/server/plugins/crumb.ts index b9ec45596a..80483a0c05 100644 --- a/runner/src/server/plugins/crumb.ts +++ b/runner/src/server/plugins/crumb.ts @@ -13,7 +13,7 @@ export const configureCrumbPlugin = ( enforce: routeConfig?.enforceCsrf ?? config?.enforceCsrf, cookieOptions: { path: "/", - isSecure: !config.isDev, + isSecure: config.httpsCookieSecureAttribute, isHttpOnly: true, isSameSite: "Strict", }, diff --git a/runner/src/server/plugins/session.ts b/runner/src/server/plugins/session.ts index 6e28dbb605..33c52b54a0 100644 --- a/runner/src/server/plugins/session.ts +++ b/runner/src/server/plugins/session.ts @@ -9,7 +9,7 @@ export default { }, cookieOptions: { password: config.sessionCookiePassword || generateCookiePassword(), - isSecure: !config.isDev, + isSecure: config.httpsCookieSecureAttribute, isHttpOnly: true, isSameSite: "Lax", }, diff --git a/runner/src/server/utils/configSchema.ts b/runner/src/server/utils/configSchema.ts index 0c52740455..33b9098129 100644 --- a/runner/src/server/utils/configSchema.ts +++ b/runner/src/server/utils/configSchema.ts @@ -54,6 +54,7 @@ export const configSchema = Joi.object({ sslCert: Joi.string().optional(), sessionTimeout: Joi.number(), sessionCookiePassword: Joi.string().optional(), + httpsCookieSecureAttribute: Joi.boolean().optional(), rateLimit: Joi.boolean().optional(), fromEmailAddress: Joi.string().optional().allow(""), serviceStartPage: Joi.string().optional().allow(""), From a84868c27d9f1b78d6496edd8571dd8d94c30909 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 14 Apr 2025 16:29:56 +0100 Subject: [PATCH 223/403] Sync upstream Git tags from XGovFormBuilder Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/sync-tags.yaml | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/sync-tags.yaml diff --git a/.github/workflows/sync-tags.yaml b/.github/workflows/sync-tags.yaml new file mode 100644 index 0000000000..0687f307f4 --- /dev/null +++ b/.github/workflows/sync-tags.yaml @@ -0,0 +1,41 @@ +name: Sync Upstream Semantic Version Tags + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" # Runs daily at midnight UTC; adjust as needed + +jobs: + sync-tags: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 # Important: fetch the entire history including all tags + + - name: Add Upstream Remote + run: | + git remote add upstream https://github.com/XGovFormBuilder/digital-form-builder || echo "Upstream remote already exists" + + - name: Fetch Tags from Upstream + run: | + git fetch upstream --tags + + - name: Sync Semantic Version Tags from Upstream + run: | + # List all upstream tags matching semantic versioning (e.g. v1.2.3) + tags=$(git ls-remote --tags upstream | grep -E 'refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$' | awk '{print $2}' | sed 's|refs/tags/||') + + for tag in $tags; do + if git rev-parse "$tag" >/dev/null 2>&1; then + echo "Tag $tag already exists in fork, skipping." + else + # Get the commit hash corresponding to the tag from upstream + commit=$(git ls-remote --tags upstream $tag | awk '{print $1}') + echo "Creating tag $tag at commit $commit" + # Create an annotated tag; change to lightweight tag by removing -a and the message if desired. + git tag -a "$tag" -m "Synced $tag from upstream" $commit + git push origin "$tag" + fi + done From 331ecded260cb1a3129aa4473b094bde06a6ea4c Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 14 Apr 2025 16:45:34 +0100 Subject: [PATCH 224/403] Correct tagging pipeline (#342) Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/sync-tags.yaml | 36 +++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/sync-tags.yaml b/.github/workflows/sync-tags.yaml index 0687f307f4..5643678519 100644 --- a/.github/workflows/sync-tags.yaml +++ b/.github/workflows/sync-tags.yaml @@ -24,18 +24,30 @@ jobs: - name: Sync Semantic Version Tags from Upstream run: | - # List all upstream tags matching semantic versioning (e.g. v1.2.3) - tags=$(git ls-remote --tags upstream | grep -E 'refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$' | awk '{print $2}' | sed 's|refs/tags/||') + echo "Listing upstream tags..." + # This regex matches lines that end with either: + # refs/tags/vMAJOR.MINOR.PATCH + # or + # refs/tags/vMAJOR.MINOR.PATCH^{} + tags=$(git ls-remote --tags upstream | grep -E 'refs/tags/v[0-9]+\.[0-9]+\.[0-9]+(\^\{\})?$' | sed -E 's|refs/tags/([^\\^]+).*|\1|') + + if [ -z "$tags" ]; then + echo "No matching semantic version tags found in upstream." + exit 0 + else + echo "Found tags: $tags" + fi for tag in $tags; do - if git rev-parse "$tag" >/dev/null 2>&1; then - echo "Tag $tag already exists in fork, skipping." - else - # Get the commit hash corresponding to the tag from upstream - commit=$(git ls-remote --tags upstream $tag | awk '{print $1}') - echo "Creating tag $tag at commit $commit" - # Create an annotated tag; change to lightweight tag by removing -a and the message if desired. - git tag -a "$tag" -m "Synced $tag from upstream" $commit - git push origin "$tag" - fi + # Check if tag already exists in the fork. + if git rev-parse "$tag" >/dev/null 2>&1; then + echo "Tag $tag already exists in fork, skipping." + else + # Get the commit hash corresponding to the tag from upstream. + # We filter the ls-remote output to allow both the regular and peeled ref. + commit=$(git ls-remote --tags upstream "$tag" | grep -E "refs/tags/$tag(\\^\\{\\})?$" | awk '{print $1}' | head -n 1) + echo "Creating tag $tag at commit $commit" + git tag -a "$tag" -m "Synced $tag from upstream" "$commit" + git push origin "$tag" + fi done From 6db73755a32d081412c4013a369125ee8b3b4fa1 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 14 Apr 2025 16:53:51 +0100 Subject: [PATCH 225/403] Sync pipeline repair (#343) * Repair regex to match XGovForms Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/sync-tags.yaml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/sync-tags.yaml b/.github/workflows/sync-tags.yaml index 5643678519..4f7bf63005 100644 --- a/.github/workflows/sync-tags.yaml +++ b/.github/workflows/sync-tags.yaml @@ -25,10 +25,6 @@ jobs: - name: Sync Semantic Version Tags from Upstream run: | echo "Listing upstream tags..." - # This regex matches lines that end with either: - # refs/tags/vMAJOR.MINOR.PATCH - # or - # refs/tags/vMAJOR.MINOR.PATCH^{} tags=$(git ls-remote --tags upstream | grep -E 'refs/tags/v[0-9]+\.[0-9]+\.[0-9]+(\^\{\})?$' | sed -E 's|refs/tags/([^\\^]+).*|\1|') if [ -z "$tags" ]; then @@ -39,15 +35,12 @@ jobs: fi for tag in $tags; do - # Check if tag already exists in the fork. if git rev-parse "$tag" >/dev/null 2>&1; then - echo "Tag $tag already exists in fork, skipping." + echo "Tag $tag already exists, skipping." else - # Get the commit hash corresponding to the tag from upstream. - # We filter the ls-remote output to allow both the regular and peeled ref. - commit=$(git ls-remote --tags upstream "$tag" | grep -E "refs/tags/$tag(\\^\\{\\})?$" | awk '{print $1}' | head -n 1) - echo "Creating tag $tag at commit $commit" - git tag -a "$tag" -m "Synced $tag from upstream" "$commit" - git push origin "$tag" + commit=$(git ls-remote --tags upstream "$tag" | grep -E "refs/tags/$tag(\\^\\{\\})?$" | awk '{print $1}' | head -n 1) + echo "Creating tag $tag at commit $commit" + git tag -a "$tag" -m "Synced $tag from upstream" "$commit" + git push origin "$tag" fi done From 204d988ff2eadc41020e8ebd800e42e3fba8a6af Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Tue, 15 Apr 2025 10:13:00 +0100 Subject: [PATCH 226/403] Sync pipeline repair (#344) * Resolve sync pipeline bash script Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/sync-tags.yaml | 65 +++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/.github/workflows/sync-tags.yaml b/.github/workflows/sync-tags.yaml index 4f7bf63005..4edaa98a7a 100644 --- a/.github/workflows/sync-tags.yaml +++ b/.github/workflows/sync-tags.yaml @@ -1,4 +1,4 @@ -name: Sync Upstream Semantic Version Tags +name: Sync Upstream Main Tag on: workflow_dispatch: @@ -12,35 +12,58 @@ jobs: - name: Checkout Repository uses: actions/checkout@v3 with: - fetch-depth: 0 # Important: fetch the entire history including all tags + fetch-depth: 0 # Ensure full history and all tags are fetched - name: Add Upstream Remote run: | - git remote add upstream https://github.com/XGovFormBuilder/digital-form-builder || echo "Upstream remote already exists" + # Add the upstream remote; change the URL if needed. + git remote add upstream https://github.com/XGovFormBuilder/digital-form-builder.git || echo "Upstream remote already exists." - - name: Fetch Tags from Upstream + - name: Fetch Upstream Main and Tags run: | - git fetch upstream --tags + git fetch upstream main --tags - - name: Sync Semantic Version Tags from Upstream + - name: Sync Tags for Upstream Main Commit with Original Message using IFS read loop run: | - echo "Listing upstream tags..." - tags=$(git ls-remote --tags upstream | grep -E 'refs/tags/v[0-9]+\.[0-9]+\.[0-9]+(\^\{\})?$' | sed -E 's|refs/tags/([^\\^]+).*|\1|') + #!/bin/bash + set -e - if [ -z "$tags" ]; then - echo "No matching semantic version tags found in upstream." - exit 0 - else - echo "Found tags: $tags" - fi + # Fetch all refs from upstream and origin + git fetch upstream --tags + git fetch origin --tags + + # Get all tags from upstream + upstream_tags=$(git ls-remote --tags upstream | grep -v '\^{}' | awk '{print $2}' | sed 's|refs/tags/||') - for tag in $tags; do - if git rev-parse "$tag" >/dev/null 2>&1; then - echo "Tag $tag already exists, skipping." + # Get all tags from origin + origin_tags=$(git ls-remote --tags origin | grep -v '\^{}' | awk '{print $2}' | sed 's|refs/tags/||') + + echo "Found upstream tags: $upstream_tags" + echo "Found origin tags: $origin_tags" + + # Loop through each upstream tag + for tag in $upstream_tags; do + # Check if tag exists on origin remote + if echo "$origin_tags" | grep -q "^$tag$"; then + echo "Tag $tag already exists on origin remote, skipping." + else + # Fetch the specific tag from upstream + git fetch upstream "refs/tags/$tag:refs/tags/$tag" + + # Check if it's an annotated tag + if git cat-file -t "refs/tags/$tag" 2>/dev/null | grep -q "^tag$"; then + # It's an annotated tag, we've already fetched it correctly + echo "Fetched annotated tag: $tag" else - commit=$(git ls-remote --tags upstream "$tag" | grep -E "refs/tags/$tag(\\^\\{\\})?$" | awk '{print $1}' | head -n 1) - echo "Creating tag $tag at commit $commit" - git tag -a "$tag" -m "Synced $tag from upstream" "$commit" - git push origin "$tag" + # It's a lightweight tag, get the commit it points to + commit=$(git rev-parse "$tag^{commit}") + echo "Fetched lightweight tag: $tag (points to $commit)" fi + + # Push the tag to origin + git push origin "refs/tags/$tag" + echo "Successfully pushed tag $tag to origin" + fi done + + echo "All upstream tags have been synced to origin." From 55b9d912a00f47823c8ff5663274c9ea539f852d Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Tue, 15 Apr 2025 11:42:06 +0100 Subject: [PATCH 227/403] Create a release generation pipeline for UKHSA modifications against base xGovForms (#345) * UKHSA Release Tag Pipeline Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/create-ukhsa-release.yaml | 90 +++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .github/workflows/create-ukhsa-release.yaml diff --git a/.github/workflows/create-ukhsa-release.yaml b/.github/workflows/create-ukhsa-release.yaml new file mode 100644 index 0000000000..341b219dd5 --- /dev/null +++ b/.github/workflows/create-ukhsa-release.yaml @@ -0,0 +1,90 @@ +name: Create UKHSA Release + +on: + push: + branches: + - v2 + paths: + - "**/*docker-compose*.yml" + - "**/*docker-compose*.yaml" + - "**/docker-compose/**" + - "/runner/**" + - "/designer/**" + - "/submitter/**" + - "/model/**" + - "/queue-model/**" + - "package.json" + - "yarn.lock" + +jobs: + create-extended-tags: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Configure Git + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + + - name: Find merge base with main and create extended tags + run: | + # Ensure we have all tags and branches + git fetch --tags origin + git fetch origin main:main + + # Find the merge base between v2 and main + MERGE_BASE=$(git merge-base v2 main) + echo "Merge base commit: $MERGE_BASE" + + # Get the tags that point to the merge base commit + BASE_TAGS=$(git tag --points-at $MERGE_BASE) + + if [ -z "$BASE_TAGS" ]; then + echo "No tags found at merge base. Exiting." + exit 0 + fi + + echo "Found tags at merge base: $BASE_TAGS" + + # Process each found tag + for BASE_TAG in $BASE_TAGS; do + echo "Processing base tag: $BASE_TAG" + + # Find highest existing extended tag version + HIGHEST_EXT_VERSION=0 + + # Get all extended tags for this base tag + EXISTING_EXT_TAGS=$(git tag -l "${BASE_TAG}-ext*") + + for EXT_TAG in $EXISTING_EXT_TAGS; do + # Extract version number after "ext" + VERSION_NUM=$(echo $EXT_TAG | sed -E "s|${BASE_TAG}-ext([0-9]+)|\1|") + + if [[ $VERSION_NUM =~ ^[0-9]+$ ]]; then + if [ $VERSION_NUM -gt $HIGHEST_EXT_VERSION ]; then + HIGHEST_EXT_VERSION=$VERSION_NUM + fi + fi + done + + # Calculate new version + NEW_VERSION=$((HIGHEST_EXT_VERSION + 1)) + NEW_TAG="${BASE_TAG}-ext${NEW_VERSION}" + + echo "Creating new extended tag: $NEW_TAG" + + # Get current v2 branch HEAD + V2_HEAD=$(git rev-parse v2) + + # Create annotated tag + git tag -a "$NEW_TAG" -m "Extended tag from $BASE_TAG for v2 branch (version $NEW_VERSION)" $V2_HEAD + + # Push the new tag + git push origin "$NEW_TAG" + echo "Successfully created and pushed tag $NEW_TAG" + done From 4e8ebfd93c7034fa2dcbb268b4833bfa5d4f3e40 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 16 Apr 2025 10:48:43 +0100 Subject: [PATCH 228/403] CAR-1810 update HPT error message (#347) --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index de448e7da2..f10c6635c1 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -54,7 +54,7 @@ "summaryTitle": "Local UKHSA health protection team", "exposeToContext": true, "customValidationMessages": { - "any.required": "Select your local UKHSA health protection team" + "any.required": "Select where your adult social care setting is" } }, "type": "RadiosField", From 3176a978903d1777b03a6fd5323eb06f402d2398 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 16 Apr 2025 15:53:45 +0100 Subject: [PATCH 229/403] CAR-1463 - Limit magic link email to 1 every 5 minutes (#346) --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + runner/src/server/forms/magic-link.json | 9 +- .../MagicLinkFirstSubmitPageController.ts | 12 + .../MagicLinkSecondSubmitPageController.ts | 12 + .../MagicLinkSubmissionPageController.ts | 236 ++++++++++++++++++ .../pageControllers/ResubmitPageController.ts | 228 ----------------- .../plugins/engine/pageControllers/helpers.ts | 6 +- .../plugins/engine/pageControllers/index.ts | 1 - runner/src/server/services/cacheService.ts | 37 ++- .../server/views/email-time-remaining.html | 46 ++++ .../views/magic-link-time-remaining.html | 44 ++++ 12 files changed, 389 insertions(+), 244 deletions(-) create mode 100644 runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts create mode 100644 runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts create mode 100644 runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts delete mode 100644 runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts create mode 100644 runner/src/server/views/email-time-remaining.html create mode 100644 runner/src/server/views/magic-link-time-remaining.html diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 512e45286c..39133caf9b 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -213,4 +213,5 @@ export type FormDefinition = { exitOptions: ExitOptions; jwtKey?: string | undefined; toggle?: boolean | string | undefined; + retryTimeoutSeconds?: number | undefined; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index a67428fff9..94ad528e10 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -345,6 +345,7 @@ export const Schema = joi showFilenamesOnSummaryPage: joi.boolean().optional(), toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), toggleRedirect: joi.string().optional(), + retryTimeoutSeconds: joi.number().optional(), }); /** diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index 933839b77b..cf971e68d8 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -3,6 +3,7 @@ "skipSummary": true, "toggle": "${magicLinkToggle}", "toggleRedirect": "/ReportAnOutbreak/setting", + "retryTimeoutSeconds": 300, "pages": [ { "path": "/start", @@ -52,7 +53,11 @@ }, { "path": "/submit1", - "controller": "ResubmitPageController" + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" }, { "path": "/check-your-email", @@ -64,7 +69,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email in 5 minutes, you can resubmit the email.

    Send a new email", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email in 5 minutes, you can resubmit the email.

    Send a new email", "schema": {} } ] diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts new file mode 100644 index 0000000000..e8a4f131b5 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts @@ -0,0 +1,12 @@ +import { MagicLinkSubmissionPageController } from "./MagicLinkSubmissionPageController"; + +// Original MagicLinkFirstSubmitPageController as a child class +export class MagicLinkFirstSubmitPageController extends MagicLinkSubmissionPageController { + get timeRemainingTemplate() { + return "email-time-remaining"; + } + + get redirectAfterSubmission() { + return `/${this.request.params.id}/check-your-email`; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts new file mode 100644 index 0000000000..81d710dfb4 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts @@ -0,0 +1,12 @@ +import { MagicLinkSubmissionPageController } from "./MagicLinkSubmissionPageController"; + +// MagicLinkSecondSubmitPageController as a child class +export class MagicLinkSecondSubmitPageController extends MagicLinkSubmissionPageController { + get timeRemainingTemplate() { + return "magic-link-time-remaining"; + } + + get redirectAfterSubmission() { + return `/${this.request.params.id}/resubmit-email`; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts new file mode 100644 index 0000000000..b5d00753b6 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts @@ -0,0 +1,236 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { redirectTo } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { createHmac } from "src/server/utils/hmac"; + +// Shared options for cookie settings +const getCookieOptions = (timeRemaining) => ({ + ttl: timeRemaining * 1000, // Convert remaining seconds to milliseconds + isSecure: true, + isHttpOnly: true, + encoding: "base64json", + path: "/", + clearInvalid: false, + strictHeader: true, +}); + +// Base controller class containing shared functionality +export class MagicLinkSubmissionPageController extends PageController { + RETRY_TIMEOUT_SECONDS: number; + + constructor(model, pageDef) { + super(model, pageDef); + this.RETRY_TIMEOUT_SECONDS = this.model.def.retryTimeoutSeconds ?? 300; + } + + // Template-specific configurations that can be overridden by child classes + get timeRemainingTemplate() { + return "email-time-remaining"; + } + + get redirectAfterSubmission() { + return `/${this.request.params.id}/check-your-email`; + } + + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.request = request; // Store request for use in getter methods + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const email = state["email"]; + const currentTime = Math.floor(Date.now() / 1000); + + // Check if there's a cookie with retry information + const retryCookie = request.state.magicLinkRetry; + + if (retryCookie) { + try { + const decoded = atob(retryCookie); // Decodes base64 + const data = JSON.parse(decoded); // Parses JSON + + // Get the retry time from the cookie + const retryAfter = data.retryAfter; + + // Calculate time remaining (in seconds) + const timeRemaining = Math.max(0, retryAfter - currentTime); + + // Allow retry if time has elapsed + if (timeRemaining <= 0) { + return redirectTo( + request, + h, + `/${this.model.basePath}/resubmit-email` + ); + } + + // Otherwise show the time remaining page with consistent calculation + const minutesRemaining = Math.ceil(timeRemaining / 60); + return h.view(this.timeRemainingTemplate, { + email, + minutesRemaining, + timeRemaining, + retryTimeoutSeconds: this.RETRY_TIMEOUT_SECONDS, + }); + } catch (error) { + request.logger.error(["Cookie parsing error", error.message]); + return redirectTo(request, h, `/${this.model.basePath}/start`); + } + } else { + return this.makePostRouteHandler()(request, h); + } + }; + } + + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.request = request; // Store request for use in getter methods + const { cacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + const summaryViewModel = new SummaryViewModel( + this.title, + model, + state, + request + ); + this.setFeedbackDetails(summaryViewModel, request); + + // redirect user to start page if there are incomplete form errors + if (summaryViewModel.result.error) { + request.logger.error( + `SummaryPage Error`, + summaryViewModel.result.error + ); + + // Determine which page to redirect to + const startPage = model.def.startPage; + let redirectPath; + + if (startPage && startPage.startsWith("http")) { + redirectPath = startPage; + } else if ( + startPage && + model.def.pages.find((page) => page.path === startPage) + ) { + redirectPath = `/${model.basePath}${startPage}`; + } else { + // Default to first page if no valid start page + redirectPath = `/${model.basePath}${model.def.pages[0].path}`; + } + + return redirectTo(request, h, redirectPath); + } + + // Get user email from state + const email = state["email"]; + if (!email) { + request.logger.warn([ + "HMAC", + "No email found in state", + JSON.stringify(state), + ]); + return redirectTo(request, h, `/${model.basePath}/start`); + } + + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + const currentTime = Math.floor(Date.now() / 1000); + + // Check if the user already has an active HMAC link + const foundHmac = await cacheService.searchForMagicLinkRecord(email); + + if (foundHmac && foundHmac.active) { + const hmacTimestamp = foundHmac.active; + const timeDifference = currentTime - hmacTimestamp; + + if (timeDifference < this.RETRY_TIMEOUT_SECONDS) { + // User must wait before requesting another link + const timeRemaining = this.RETRY_TIMEOUT_SECONDS - timeDifference; + const minutesRemaining = Math.ceil(timeRemaining / 60); + + // Set consistent cookie for retry timeout + const cookieValue = { + retryAfter: hmacTimestamp + this.RETRY_TIMEOUT_SECONDS, + }; + + const cookieOptions = getCookieOptions(timeRemaining); + h.state("magicLinkRetry", cookieValue, cookieOptions); + + // Show the time remaining page + return h.view(this.timeRemainingTemplate, { + email, + minutesRemaining, + timeRemaining, + }); + } + } + + // Generate new HMAC for the email + const [hmac, currentTimestamp, hmacExpiryTime] = await createHmac( + email, + hmacKey + ); + + // Store or update the HMAC record + if (!foundHmac) { + await cacheService.createMagicLinkRecord(email, hmac, currentTimestamp); + } else { + // Update existing record + await cacheService.updateMagicLinkRecord(email, hmac, currentTimestamp); + } + + // Construct the magic link URL + const hmacUrlStart = "/magic-link/return?email="; + const hmacUrl = hmacUrlStart.concat( + email, + "&request_time=", + currentTimestamp.toString(), + "&signature=", + hmac.toString() + ); + + // Store data in state with a single merge operation + await cacheService.mergeState(request, { + hmacSignature: hmacUrl, + hmacExpiryTime: hmacExpiryTime, + outputs: summaryViewModel.outputs, + userCompletedSummary: true, + webhookData: summaryViewModel.validatedWebhookData, + }); + + // Set cookie for retry timeout (using consistent constant) + const cookieOptions = getCookieOptions(this.RETRY_TIMEOUT_SECONDS); + h.state( + "magicLinkRetry", + { + retryAfter: currentTimestamp + this.RETRY_TIMEOUT_SECONDS, + }, + cookieOptions + ); + + request.logger.info( + ["Webhook data", "before send", request.yar.id], + JSON.stringify(summaryViewModel.validatedWebhookData) + ); + + // Get StatusService and submit the form + const { statusService } = request.services([]); + await statusService.outputRequests(request); + + // Redirect to custom page + return redirectTo(request, h, this.redirectAfterSubmission); + }; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts deleted file mode 100644 index 0bdcd31618..0000000000 --- a/runner/src/server/plugins/engine/pageControllers/ResubmitPageController.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { SummaryViewModel } from "../models"; -import { PageController } from "./PageController"; -import { redirectTo, redirectUrl } from "../helpers"; -import { HapiRequest, HapiResponseToolkit } from "server/types"; -import { createHmac } from "src/server/utils/hmac"; - -export class ResubmitPageController extends PageController { - constructor(model, pageDef) { - super(model, pageDef); - } - /** - * Returns an async function. This is called in plugin.ts when there is a GET request at `/{id}/{path*}`, - */ - makeGetRouteHandler() { - return async (request: HapiRequest, h: HapiResponseToolkit) => { - this.langFromRequest(request); - - const { cacheService } = request.services([]); - const model = this.model; - - // @ts-ignore - ignoring so docs can be generated. Remove when properly typed - if (this.model.def.skipSummary) { - return this.makePostRouteHandler()(request, h); - } - const state = await cacheService.getState(request); - const viewModel = new SummaryViewModel(this.title, model, state, request); - - if (viewModel.endPage) { - return redirectTo( - request, - h, - `/${model.basePath}${viewModel.endPage.path}` - ); - } - - /** - * iterates through the errors. If there are errors, a user will be redirected to the page - * with the error with returnUrl=`/${model.basePath}/summary` in the URL query parameter. - */ - if (viewModel.errors) { - const errorToFix = viewModel.errors[0]; - const { path } = errorToFix; - const parts = path.split("."); - const section = parts[0]; - const property = parts.length > 1 ? parts[parts.length - 1] : null; - const iteration = parts.length === 3 ? Number(parts[1]) + 1 : null; - const pageWithError = model.pages.filter((page) => { - if (page.section && page.section.name === section) { - let propertyMatches = true; - let conditionMatches = true; - if (property) { - propertyMatches = - page.components.formItems.filter( - (item) => item.name === property - ).length > 0; - } - if ( - propertyMatches && - page.condition && - model.conditions[page.condition] - ) { - conditionMatches = model.conditions[page.condition].fn(state); - } - return propertyMatches && conditionMatches; - } - return false; - })[0]; - if (pageWithError) { - const params = { - returnUrl: redirectUrl(request, `/${model.basePath}/summary`), - num: iteration && pageWithError.repeatField ? iteration : null, - }; - return redirectTo( - request, - h, - `/${model.basePath}${pageWithError.path}`, - params - ); - } - } - - const declarationError = request.yar.flash("declarationError"); - if (declarationError.length) { - viewModel.declarationError = declarationError[0]; - } - return h.view("summary", viewModel); - }; - } - - /** - * Returns an async function. This is called in plugin.ts when there is a POST request at `/{id}/{path*}`. - * If a form is incomplete, a user will be redirected to the start page. - */ - makePostRouteHandler() { - return async (request: HapiRequest, h: HapiResponseToolkit) => { - const { cacheService } = request.services([]); - const model = this.model; - const state = await cacheService.getState(request); - const summaryViewModel = new SummaryViewModel( - this.title, - model, - state, - request - ); - this.setFeedbackDetails(summaryViewModel, request); - - // redirect user to start page if there are incomplete form errors - if (summaryViewModel.result.error) { - request.logger.error( - `SummaryPage Error`, - summaryViewModel.result.error - ); - /** defaults to the first page */ - // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed - let startPageRedirect = redirectTo( - request, - h, - `/${model.basePath}${model.def.pages[0].path}` - ); - const startPage = model.def.startPage; - - // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed - if (startPage.startsWith("http")) { - // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed - startPageRedirect = redirectTo(request, h, startPage); - } else if (model.def.pages.find((page) => page.path === startPage)) { - // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed - startPageRedirect = redirectTo( - request, - h, - `/${model.basePath}${startPage}` - ); - } - - return startPageRedirect; - } - - // Get user email from state or request - const email = state["email"]; - - const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; - - if (email) { - const [hmac, currentTimestamp, hmacExpiryTime] = await createHmac( - email, - hmacKey - ); - - // Check the hapi server for a record with that email - const foundHmac = await cacheService.searchForMagicLinkRecord( - email, - hmac - ); - - if (!foundHmac) { - await cacheService.createMagicLinkRecord(email, hmac); - } - - const hmacUrlStart = "/magic-link/return?email="; - - const hmacUrl = hmacUrlStart.concat( - email, - "&request_time=", - currentTimestamp.toString(), - "&signature=", - hmac.toString() - ); - - // Store HMAC signature in state - await cacheService.mergeState(request, { - hmacSignature: hmacUrl, - hmacExpiryTime: hmacExpiryTime, - }); - - const updatedState = await cacheService.getState(request); - - // Continue with the normal flow... - await cacheService.mergeState(request, { - hmacSignature: updatedState.hmacSignature, - hmacExpiryTime: updatedState.hmacExpiryTime, - outputs: summaryViewModel.outputs, - userCompletedSummary: true, - }); - - // The webhookData will be stored separately, without modification - await cacheService.mergeState(request, { - webhookData: summaryViewModel.validatedWebhookData, - }); - } else { - request.logger.warn([ - "HMAC", - "No email found in state", - JSON.stringify(state), - ]); - } - - request.logger.info( - ["Webhook data", "before send", request.yar.id], - JSON.stringify(summaryViewModel.validatedWebhookData) - ); - // After preparing the webhook data - await cacheService.mergeState(request, { - webhookData: summaryViewModel.validatedWebhookData, - }); - - // Get StatusService - const { statusService } = request.services([]); - - // Submit the form - await statusService.outputRequests(request); - - // Redirect to custom page instead of status - return redirectTo(request, h, `/${request.params.id}/check-your-email`); - }; - } - - get postRouteOptions() { - return { - ext: { - onPreHandler: { - method: async (_request: HapiRequest, h: HapiResponseToolkit) => { - return h.continue; - }, - }, - }, - }; - } -} diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index a2a24795f6..113f8c066a 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -12,7 +12,8 @@ import { Page } from "@xgovformbuilder/model"; import { UploadPageController } from "server/plugins/engine/pageControllers/UploadPageController"; import { MultiStartPageController } from "server/plugins/engine/pageControllers/MultiStartPageController"; import { CheckpointSummaryPageController } from "src/server/plugins/engine/pageControllers/CheckpointSummaryPageController"; -import { ResubmitPageController } from "./ResubmitPageController"; +import { MagicLinkFirstSubmitPageController } from "./MagicLinkFirstSubmitPageController"; +import { MagicLinkSecondSubmitPageController } from "./MagicLinkSecondSubmitPageController"; import { MagicLinkController } from "./MagicLinkController"; import { MagicLinkStartPageController } from "./MagicLinkStartPageController"; import { CustomSummaryPageController } from "./CustomSummaryPageController"; @@ -31,7 +32,8 @@ const PageControllers = { UploadPageController, MultiStartPageController, CheckpointSummaryPageController, - ResubmitPageController, + MagicLinkFirstSubmitPageController, + MagicLinkSecondSubmitPageController, MagicLinkController, MagicLinkStartPageController, CustomSummaryPageController, diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index b15e70447c..c39b75d02c 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -7,7 +7,6 @@ export { SummaryPageController } from "./SummaryPageController"; export { PageControllerBase } from "./PageControllerBase"; export { getPageController, controllerNameFromPath } from "./helpers"; export { CheckpointSummaryPageController } from "./CheckpointSummaryPageController"; -export { ResubmitPageController } from "./ResubmitPageController"; export { MagicLinkController } from "./MagicLinkController"; export { MagicLinkStartPageController } from "./MagicLinkStartPageController"; export { CustomSummaryPageController } from "./CustomSummaryPageController"; diff --git a/runner/src/server/services/cacheService.ts b/runner/src/server/services/cacheService.ts index d8e338777d..4e4a258c04 100644 --- a/runner/src/server/services/cacheService.ts +++ b/runner/src/server/services/cacheService.ts @@ -127,22 +127,41 @@ export class CacheService { } } - async createMagicLinkRecord(email: string, hmac: string) { - const key = this.MagicLinkKey(email, hmac); + async createMagicLinkRecord( + email: string, + hmac: string, + currentTimestamp: string + ) { + const key = email; + const value = { + hmac: hmac, + active: currentTimestamp, + }; + return this.cache.set(key, value, config.sessionTimeout); + } + + async updateMagicLinkRecord( + email: string, + hmac: string, + currentTimestamp: string + ) { + const key = email; + const value = { - active: true, + hmac: hmac, + active: currentTimestamp, }; return this.cache.set(key, value, config.sessionTimeout); } - async searchForMagicLinkRecord(email: string, hmac: string) { - const key = this.MagicLinkKey(email, hmac); + async searchForMagicLinkRecord(email: string) { + const key = email; const emailCached = await this.cache.get(key); return emailCached ?? null; } - async deleteMagicLinkRecord(email: string, hmac: string) { - const key = this.MagicLinkKey(email, hmac); + async deleteMagicLinkRecord(email: string) { + const key = email; return await this.cache.drop(key); } @@ -169,10 +188,6 @@ export class CacheService { id: jwt, }; } - - MagicLinkKey(email, hmac) { - return `${email}+${hmac}`; - } } export const catboxProvider = () => { diff --git a/runner/src/server/views/email-time-remaining.html b/runner/src/server/views/email-time-remaining.html new file mode 100644 index 0000000000..f2901e1181 --- /dev/null +++ b/runner/src/server/views/email-time-remaining.html @@ -0,0 +1,46 @@ +{% extends 'layout.html' %} + +{% block content %} +
    + Back +
    +
    +
    +

    What is your email address?

    + +

    We need to email you a secure link to the service.

    + +

    The link expires after 20 minutes.

    + +
    + + +
    +
    +

    By continuing, you agree to our privacy notice.

    + + + {% if minutesRemaining %} +
    +
    + + + Warning + You must wait + {% if minutesRemaining == 1 %} + 1 minute + {% else %} + {{ minutesRemaining }} minutes + {% endif %} + before resubmitting the email + +
    +
    + {% endif %} + + Send a new email +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/magic-link-time-remaining.html b/runner/src/server/views/magic-link-time-remaining.html new file mode 100644 index 0000000000..61fa74d3d9 --- /dev/null +++ b/runner/src/server/views/magic-link-time-remaining.html @@ -0,0 +1,44 @@ +{% extends 'layout.html' %} + +{% block content %} +
    + Back +
    + +
    +
    +

    Check your email

    +

    We've sent an email to {{ email }}.

    + +

    Click the link in the email to continue to report an outbreak.

    + +

    If you've not received an email

    + +

    Check your spam or junk folder.

    + +

    If you've not received the email in {{ retryTimeoutSeconds/60 }} minutes, you can resubmit the email.

    + + {% if minutesRemaining %} +
    +
    + + + Warning + You must wait + {% if minutesRemaining == 1 %} + 1 minute + {% else %} + {{ minutesRemaining }} minutes + {% endif %} + before resubmitting the email + +
    +
    + {% endif %} + + Send a new email +
    +
    +
    +
    +{% endblock %} From c03925138eeb0c5fa8cba2f4b3a3d9edd5d89522 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Tue, 22 Apr 2025 10:49:09 +0100 Subject: [PATCH 230/403] CAR-1671 - Create custom accessibility, privacy and cookie pages per service (#348) * Create custom help pages per form --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- runner/FORM_DEVELOPMENT_README.md | 24 ++++ runner/src/server/plugins/router.ts | 135 ++++++++++++++++-- .../accessibility-statement.html | 90 ++++++++++++ .../views/ReportAnOutbreak/cookies.html | 114 +++++++++++++++ .../views/ReportAnOutbreak/privacy.html | 15 ++ runner/src/server/views/layout.html | 9 +- 6 files changed, 369 insertions(+), 18 deletions(-) create mode 100644 runner/FORM_DEVELOPMENT_README.md create mode 100644 runner/src/server/views/ReportAnOutbreak/accessibility-statement.html create mode 100644 runner/src/server/views/ReportAnOutbreak/cookies.html create mode 100644 runner/src/server/views/ReportAnOutbreak/privacy.html diff --git a/runner/FORM_DEVELOPMENT_README.md b/runner/FORM_DEVELOPMENT_README.md new file mode 100644 index 0000000000..8e73bff8f9 --- /dev/null +++ b/runner/FORM_DEVELOPMENT_README.md @@ -0,0 +1,24 @@ +# Form development on ukhsa-collaboration/digital-form-builder + +## Commit your service form + +To commit your service form, save it into the `/runner/src/server/forms` folder. + +## Setting custom help pages + +To set customised help pages for your service, such as accessibility statement, privacy policy or cookie policy, you need to create a service named folder in `/runner/src/server/views` with the relevant pages. + +ie. + +``` +YourServiceName/cookies.html +YourServiceName/accessibility.html +``` + +The `/runner/src/server/plugins/router.ts` is configured to capture the service (or form) name present in the URI path and route to customised help pages if they exist or revert back to default ones. + +The route will supply your form name into the page where you can reference it via `{{ name }}`. This is the name set within your form config .json file located in `/runner/src/server/forms`. + +## Setting authentication + +TBC diff --git a/runner/src/server/plugins/router.ts b/runner/src/server/plugins/router.ts index 77d5006809..6912eb2a5c 100644 --- a/runner/src/server/plugins/router.ts +++ b/runner/src/server/plugins/router.ts @@ -5,6 +5,9 @@ import { HapiRequest, HapiResponseToolkit } from "../types"; import config from "../config"; import getRequestInfo from "server/utils/getRequestInfo"; +import fs from "fs"; +import path from "path"; + const routes = [...publicRoutes, healthCheckRoute]; enum CookieValue { @@ -29,23 +32,64 @@ export default { server.route([ { method: "get", - path: "/help/privacy", + path: "/{url}/privacy", handler: async (_request: HapiRequest, h: HapiResponseToolkit) => { - if (config.privacyPolicyUrl) { - return h.redirect(config.privacyPolicyUrl); + const { url } = _request.params; // Extract the dynamic page parameter + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "privacy.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/privacy"); + } + + // Check if the file exists + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/privacy"); } - return h.view("help/privacy"); + + return h.view(`${url}/privacy`, { name: form.name }); }, }, { method: "get", - path: "/help/cookies", + path: "/{url}/cookies", handler: async (request: HapiRequest, h: HapiResponseToolkit) => { + const { url } = request.params; // Extract the dynamic page parameter const cookiesPolicy = request.state.cookies_policy; let analytics = cookiesPolicy?.analytics === "on" ? "accept" : "reject"; - return h.view("help/cookies", { + + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "cookies.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/cookies"); + } + + // Check if the file exists + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/cookies"); + } + + return h.view(`${url}/cookies`, { analytics, + name: form.name, }); }, }, @@ -72,13 +116,35 @@ export default { }).required(), }, }, - path: "/help/cookies", + path: "/{url}/cookies", handler: async (request: HapiRequest, h: HapiResponseToolkit) => { + const { url } = request.params; // Extract the dynamic page parameter + const { cookies } = request.payload as CookiePayload; const accept = cookies === "accept"; const { referrer } = getRequestInfo(request); - let redirectPath = "/help/cookies"; + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "cookies.html" + ); + + let redirectPath = `/${url}/cookies`; + + // Catch the default help page before processing further + if (url === "help") { + redirectPath = "help/cookies"; + } + + // Check if the file exists + if (!form || !fs.existsSync(viewPath)) { + redirectPath = "/help/cookies"; + } if (referrer) { redirectPath = new URL(referrer).pathname; @@ -92,6 +158,7 @@ export default { essential: true, analytics: accept ? "on" : "off", usage: accept, + name: form.name, }, { isHttpOnly: false, @@ -104,17 +171,61 @@ export default { server.route({ method: "get", - path: "/help/terms-and-conditions", + path: "/{url}/terms-and-conditions", handler: async (_request: HapiRequest, h: HapiResponseToolkit) => { - return h.view("help/terms-and-conditions"); + const { url } = _request.params; // Extract the dynamic page parameter + + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "terms-and-conditions.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/terms-and-conditions"); + } + + // Check if the file exists, if it doesn't, redirect to the default accessibility statement + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/terms-and-conditions"); + } + + return h.view(`${url}/terms-and-conditions`, { name: form.name }); }, }); server.route({ method: "get", - path: "/help/accessibility-statement", + path: "/{url}/accessibility-statement", handler: async (_request: HapiRequest, h: HapiResponseToolkit) => { - return h.view("help/accessibility-statement"); + const { url } = _request.params; // Extract the dynamic page parameter + + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "accessibility-statement.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/accessibility-statement"); + } + + // Check if the file exists, if it doesn't, redirect to the default accessibility statement + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/accessibility-statement"); + } + + return h.view(`${url}/accessibility-statement`, { name: form.name }); }, }); diff --git a/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html new file mode 100644 index 0000000000..056eb98cd8 --- /dev/null +++ b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html @@ -0,0 +1,90 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the Report an Outbreak website https://forms.ukhsa.gov.uk/ReportAnOutbreak (opens in new tab). + + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

    +

    +

      +
    • change colours, contrast levels and fonts using browser or device settings
    • +
    • zoom in up to 400% without the text spilling off the screen
    • +
    • navigate most of the website using a keyboard or speech recognition software
    • +
    • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
    • +
    +

    +

    + We’ve also made the website text as simple as possible to understand. + + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

    +

    How accessible this website is

    +

    + We know some parts of this website are not fully accessible: + +

      +
    • you cannot modify the line height or spacing of text
    • +
    • you cannot skip to the main content when using a screen reader
    • +
    +

    +

    Feedback and contact information

    +

    + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk + + If you have difficulty using the website to report an outbreak, you should phone your local UKHSA health protection team (opens in new tab). +

    +

    Enforcement procedure

    +

    + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

    +

    Technical information about this website’s accessibility

    +

    + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

    +

    Compliance status

    +

    + This website is partially compliant with the Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

    +

    Non-accessible content

    +

    + The content listed below is non-accessible for the following reasons.  +

    +

    Non-compliance with the accessibility regulations

    +

    + Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
    + There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

    + External links do not signal that they will open in a new tab, so people using a screen reader do not know that the page content is changing. This fails WCAG success criterion 4.1.3 (status changes)
    +
    + We plan to address these issues soon. +

    +

    Content that’s not within the scope of accessibility regulations

    +

    PDFs and other documents

    +

    + The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

    +

    What we’re doing to improve accessibility

    +

    + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

    +

    Preparation of this accessibility statement

    +

    + This statement was prepared in October 2023. It was last reviewed in April 2025.
    + This website was last tested in March 2025 against the WCAG 2.2 AA standard.
    + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/ReportAnOutbreak/cookies.html b/runner/src/server/views/ReportAnOutbreak/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/ReportAnOutbreak/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/ReportAnOutbreak/privacy.html b/runner/src/server/views/ReportAnOutbreak/privacy.html new file mode 100644 index 0000000000..5259f6ba80 --- /dev/null +++ b/runner/src/server/views/ReportAnOutbreak/privacy.html @@ -0,0 +1,15 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    {{ name }} Privacy policy

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/layout.html b/runner/src/server/views/layout.html index b5d8406384..ef75e05faa 100644 --- a/runner/src/server/views/layout.html +++ b/runner/src/server/views/layout.html @@ -174,17 +174,14 @@

    Default page template

    {{ govukFooter({ meta: { items: [{ - href: privacyPolicyUrl, + href: 'privacy', text: 'Privacy' }, { - href: '/help/cookies', + href: 'cookies', text: 'Cookies' }, { - href: '/help/accessibility-statement', + href: 'accessibility-statement', text: 'Accessibility Statement' - }, { - href: '/help/terms-and-conditions', - text: 'Terms and Conditions' }] } }) }} From ef33122dbdc471a508cfd508a5cf7a9d206b4561 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Tue, 22 Apr 2025 11:09:45 +0100 Subject: [PATCH 231/403] CAR-1718 CSRF Custom error message page (#349) * CAR-1718 CSRF Protection (http 403) error message page with service heading Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- docker-compose.yml | 4 +++- runner/src/server/plugins/errorPages.ts | 20 +++++++++++++++++++- runner/src/server/views/csrf-protection.html | 16 ++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100755 runner/src/server/views/csrf-protection.html diff --git a/docker-compose.yml b/docker-compose.yml index 976f3c2a16..e7ec127784 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -40,6 +40,8 @@ services: - PREVIEW_MODE=true - LAST_COMMIT - LAST_TAG + - MAGIC_LINK_TOGGLE="false" + - ENFORCE_CSRF=true # - ENABLE_QUEUE_SERVICE=true # - QUEUE_DATABASE_URL=mysql://root:root@mysql:3306/queue # or postgres://user:root@postgres:5432/queue # - DEBUG="prisma*" @@ -95,4 +97,4 @@ services: # environment: # POSTGRES_DB: queue # POSTGRES_PASSWORD: root -# POSTGRES_USER: user \ No newline at end of file +# POSTGRES_USER: user diff --git a/runner/src/server/plugins/errorPages.ts b/runner/src/server/plugins/errorPages.ts index ebe4b27cbd..fb25097ee2 100644 --- a/runner/src/server/plugins/errorPages.ts +++ b/runner/src/server/plugins/errorPages.ts @@ -1,4 +1,5 @@ import { HapiRequest, HapiResponseToolkit } from "../types"; +import config from "../config"; /* * Add an `onPreResponse` listener to return error pages @@ -29,8 +30,25 @@ export default { message: response.message, }); + try { + const url = request.url; + var urlPath = url.pathname.split("/"); + var form = server.app.forms[urlPath[1]]; + } catch (e) { + return h.view("500").code(500); + } + + // In the event of 403 (CSRF protection) + if (statusCode === 403) { + return h + .view("csrf-protection", { url: urlPath, name: form.name }) + .code(statusCode); + } + // The return the `500` view - return h.view("500").code(statusCode); + return h + .view("500", { name: form.name || config.serviceName }) + .code(statusCode); } return h.continue; } diff --git a/runner/src/server/views/csrf-protection.html b/runner/src/server/views/csrf-protection.html new file mode 100755 index 0000000000..b2c31e973a --- /dev/null +++ b/runner/src/server/views/csrf-protection.html @@ -0,0 +1,16 @@ +{% extends 'layout.html' %} + +{% block content %} +
    +
    +
    +
    +

    Something unexpected happened

    +

    In order to ensure the data you've inputted into the system is protected, please re-enter the form where you left off.


    + + Back to start +
    +
    +
    +
    +{% endblock %} From fbf7b5118ee9a3306482f4f5fbfed007d9062f76 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Tue, 22 Apr 2025 14:49:41 +0100 Subject: [PATCH 232/403] CAR-1156 Report an Outbreak custom Privacy Policy (#350) * CAR-1156 Update privacy policy for Report an Outbreak Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../views/ReportAnOutbreak/privacy.html | 165 +++++++++++++++++- 1 file changed, 163 insertions(+), 2 deletions(-) diff --git a/runner/src/server/views/ReportAnOutbreak/privacy.html b/runner/src/server/views/ReportAnOutbreak/privacy.html index 5259f6ba80..269c0a681f 100644 --- a/runner/src/server/views/ReportAnOutbreak/privacy.html +++ b/runner/src/server/views/ReportAnOutbreak/privacy.html @@ -7,8 +7,169 @@ {% block content %}
    -
    -

    {{ name }} Privacy policy

    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) came into being. An executive agency of the Department of Health and Social Care (DHSC), UKHSA combines many of the health protection activities previously undertaken by Public Health England (PHE), together with all of the activities of the NHS Test and Trace Programme and the Joint Biosecurity Centre (JBC). +

    + The processing activities previously undertaken by these organisations and their associated data processors have not changed with the establishment of UKHSA. Individual rights are not affected by this change. +

    + We are responsible for planning, preventing and responding to external health threats, and providing intellectual, scientific and operational leadership at national and local level, as well as internationally. UKHSA will ensure the nation can respond quickly and at greater scale to deal with pandemics and future threats. +

    + We collect and use personal information to fulfil our remit from the government. +

    +

    + UKHSA’s responsibilities include providing the Report an outbreak service. Read about UKHSA’s responsibilities in the UKHSA strategic plan 2023 to 2026 (opens in new tab). +

    + The 'Report an outbreak' service enables Adult Social Care (ASC) providers to report outbreaks of acute respiratory infection (ARI) like flu or COVID-19. It automates the outbreak risk assessment process and provides immediate relevant outbreak management advice to the setting via email. +

    + This privacy notice explains what personal information we collect, use and may share for Report an outbreak. It explains what your rights are if we hold your personal information, and how you can find out more or raise a concern. + DHSC is the data controller for the personal information we collect, store and use to fulfil our remit. +

    +

    The information we collect

    +

    + During an outbreak, the local health protection team needs to collect personal information so they can quickly provide the care setting with relevant outbreak management advice. +

    + The personal information we collect and use includes the reporter’s (and an optional additional contact person’s): +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +
    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    From e76f970974309f6c05e6b46916d701077b329b47 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Wed, 23 Apr 2025 16:41:47 +0100 Subject: [PATCH 233/403] Telephone validation regex (#353) * Upgrade telephone validation regex to UK telephone codes Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../server/plugins/engine/components/TelephoneNumberField.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index f8ed386f90..47a0dd66f6 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -7,8 +7,7 @@ import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; const TELEPHONE_REGEX = - "^((\\+44\\s?|0)7\\d{3}\\s?\\d{3}\\s?\\d{3}|(\\+44\\s?|0)1\\d{1,3}\\s?\\d{3,4}\\s?\\d{3,4})$"; - + "^(((+44s?d{4}|(?0d{4})?)s?d{3}s?d{3})|((+44s?d{3}|(?0d{3})?)s?d{3}s?d{4})|((+44s?d{2}|(?0d{2})?)s?d{4}s?d{4}))(s?#(d{4}|d{3}))?$"; export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); From 5d35d51f2977a0cc2a16cee2eb608be987a7c87d Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 24 Apr 2025 11:08:46 +0100 Subject: [PATCH 234/403] Add proper escaping to telephone regex (#355) --- .../server/plugins/engine/components/TelephoneNumberField.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index 47a0dd66f6..feb872c19a 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -7,7 +7,8 @@ import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; const TELEPHONE_REGEX = - "^(((+44s?d{4}|(?0d{4})?)s?d{3}s?d{3})|((+44s?d{3}|(?0d{3})?)s?d{3}s?d{4})|((+44s?d{2}|(?0d{2})?)s?d{4}s?d{4}))(s?#(d{4}|d{3}))?$"; + "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$"; + export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); From a3de40e0d3424db206cfc80387085f17e4e536ca Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:04:58 +0100 Subject: [PATCH 235/403] CAR-1718 Fix CSRF protection page 'back to start' button (#356) * CAR-1718 Fix CSRF protection page return to start link Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- runner/src/server/plugins/errorPages.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/errorPages.ts b/runner/src/server/plugins/errorPages.ts index fb25097ee2..11c3ae52a7 100644 --- a/runner/src/server/plugins/errorPages.ts +++ b/runner/src/server/plugins/errorPages.ts @@ -41,7 +41,7 @@ export default { // In the event of 403 (CSRF protection) if (statusCode === 403) { return h - .view("csrf-protection", { url: urlPath, name: form.name }) + .view("csrf-protection", { url: urlPath[1], name: form.name }) .code(statusCode); } From 717acfd93c63caf17e0064ef3de7a48aaabf00bf Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:07:06 +0100 Subject: [PATCH 236/403] Correct h3 on custom help pages for Report an outbreak (#351) * Update h3 tags on help pages * Adjust h4 to be inline content on help pages Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../ReportAnOutbreak/accessibility-statement.html | 11 +++++------ runner/src/server/views/ReportAnOutbreak/privacy.html | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html index 056eb98cd8..5f8bcfcec2 100644 --- a/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html +++ b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html @@ -52,15 +52,15 @@

    Technical information about this website’s accessi

    UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018.

    -

    Compliance status

    +

    Compliance status

    This website is partially compliant with the Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below

    -

    Non-accessible content

    +

    Non-accessible content

    The content listed below is non-accessible for the following reasons. 

    -

    Non-compliance with the accessibility regulations

    +

    Non-compliance with the accessibility regulations

    Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
    There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

    @@ -68,10 +68,9 @@

    Non-compliance with the accessibility regulations We plan to address these issues soon.

    -

    Content that’s not within the scope of accessibility regulations

    -

    PDFs and other documents

    +

    Content that’s not within the scope of accessibility regulations

    - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share.

    What we’re doing to improve accessibility

    diff --git a/runner/src/server/views/ReportAnOutbreak/privacy.html b/runner/src/server/views/ReportAnOutbreak/privacy.html index 269c0a681f..f192186e95 100644 --- a/runner/src/server/views/ReportAnOutbreak/privacy.html +++ b/runner/src/server/views/ReportAnOutbreak/privacy.html @@ -77,7 +77,7 @@

    Who we share your information with

    We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information.

    -

    With local authorities

    +

    With local authorities

    Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website.

    From 1b82e1d61ee4287e8efa03b8efa20f296a43144d Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 25 Apr 2025 10:15:38 +0100 Subject: [PATCH 237/403] CAR-1671 Accessibility help page styling adjustments (#357) * CAR-1671 Further styling adjustments Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../ReportAnOutbreak/accessibility-statement.html | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html index 5f8bcfcec2..e2e4077d30 100644 --- a/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html +++ b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html @@ -12,7 +12,7 @@

    Accessibility statement for {{ name }}

    This accessibility statement applies to the Report an Outbreak website https://forms.ukhsa.gov.uk/ReportAnOutbreak (opens in new tab). - +

    This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to:

    @@ -25,7 +25,7 @@

    Accessibility statement for {{ name }}

    We’ve also made the website text as simple as possible to understand. - +
    AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability.

    How accessible this website is

    @@ -40,7 +40,9 @@

    How accessible this website is

    Feedback and contact information

    If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk - +
    +

    +

    If you have difficulty using the website to report an outbreak, you should phone your local UKHSA health protection team (opens in new tab).

    Enforcement procedure

    @@ -54,7 +56,7 @@

    Technical information about this website’s accessi

    Compliance status

    - This website is partially compliant with the Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below

    Non-accessible content

    @@ -63,6 +65,7 @@

    Non-accessible content

    Non-compliance with the accessibility regulations

    Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
    +
    There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

    External links do not signal that they will open in a new tab, so people using a screen reader do not know that the page content is changing. This fails WCAG success criterion 4.1.3 (status changes)

    From b06bd2c6c9a332773491216325e2377c7b1ab6e8 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 25 Apr 2025 10:52:03 +0100 Subject: [PATCH 238/403] Disallow 04 and 06 numbers in telephone validation regex (#359) * CAR-1820 Adjust telephone regex to not allow 04 or 06 numbers Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../server/plugins/engine/components/TelephoneNumberField.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index feb872c19a..46f1c3d7a0 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -7,8 +7,7 @@ import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; const TELEPHONE_REGEX = - "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$"; - + "^(((+44s?(?!4|6)d{4}|(?0(?!4|6)d{4})?)s?d{3}s?d{3})|((+44s?(?!4|6)d{3}|(?0(?!4|6)d{3})?)s?d{3}s?d{4})|((+44s?(?!4|6)d{2}|(?0(?!4|6)d{2})?)s?d{4}s?d{4}))(s?#(d{4}|d{3}))?$"; export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); From 06f2cf85fbbdfeb598d76747694249db27b03d6e Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 11:05:33 +0100 Subject: [PATCH 239/403] Create TestForm1.json --- runner/src/server/forms/TestForm1.json | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 runner/src/server/forms/TestForm1.json diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json new file mode 100644 index 0000000000..03c4601b0d --- /dev/null +++ b/runner/src/server/forms/TestForm1.json @@ -0,0 +1,31 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + } + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} From 1f4141276324d9270752d0a980f51a30b9ebc319 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 25 Apr 2025 11:53:32 +0100 Subject: [PATCH 240/403] Modify release pipeline to fire on each change (#361) * Fix paths for application directories Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/create-ukhsa-release.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/create-ukhsa-release.yaml b/.github/workflows/create-ukhsa-release.yaml index 341b219dd5..2766168512 100644 --- a/.github/workflows/create-ukhsa-release.yaml +++ b/.github/workflows/create-ukhsa-release.yaml @@ -8,11 +8,11 @@ on: - "**/*docker-compose*.yml" - "**/*docker-compose*.yaml" - "**/docker-compose/**" - - "/runner/**" - - "/designer/**" - - "/submitter/**" - - "/model/**" - - "/queue-model/**" + - "runner/**" + - "designer/**" + - "submitter/**" + - "model/**" + - "queue-model/**" - "package.json" - "yarn.lock" From c71d9379edfaa20a567f0bc1539c1c1bf0d6e9e7 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Fri, 25 Apr 2025 12:01:32 +0100 Subject: [PATCH 241/403] Remove arguments not needed from magic link functions (#358) --- .../plugins/engine/pageControllers/MagicLinkController.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts index 4fa325d2b8..12cccc215d 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts @@ -25,15 +25,14 @@ export class MagicLinkController extends PageController { const state = await cacheService.getState(request); const isMagicLinkRecordActive = await cacheService.searchForMagicLinkRecord( - email, - hmac + email ); if (!isMagicLinkRecordActive) { return h.redirect("/magic-link/expired").code(302); } - await cacheService.deleteMagicLinkRecord(email, hmac); + await cacheService.deleteMagicLinkRecord(email); if (!validation.isValid) { // Handle different invalid token cases From 2ff71baa383d42502141659ceb6d90aa0b947611 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 25 Apr 2025 14:27:32 +0100 Subject: [PATCH 242/403] Fix tele regex (#362) * Fix telephone regex escaping Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../server/plugins/engine/components/TelephoneNumberField.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index 46f1c3d7a0..d802f6c0b2 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -7,7 +7,7 @@ import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; const TELEPHONE_REGEX = - "^(((+44s?(?!4|6)d{4}|(?0(?!4|6)d{4})?)s?d{3}s?d{3})|((+44s?(?!4|6)d{3}|(?0(?!4|6)d{3})?)s?d{3}s?d{4})|((+44s?(?!4|6)d{2}|(?0(?!4|6)d{2})?)s?d{4}s?d{4}))(s?#(d{4}|d{3}))?$"; + "\\^\\(\\(\\(\\+44s\\?\\(\\?!4\\|6\\)d\\{4\\}\\|\\(\\?0\\(\\?!4\\|6\\)d\\{4\\}\\)\\?\\)s\\?d\\{3\\}s\\?d\\{3\\}\\)\\|\\(\\(\\+44s\\?\\(\\?!4\\|6\\)d\\{3\\}\\|\\(\\?0\\(\\?!4\\|6\\)d\\{3\\}\\)\\?\\)s\\?d\\{3\\}s\\?d\\{4\\}\\)\\|\\(\\(\\+44s\\?\\(\\?!4\\|6\\)d\\{2\\}\\|\\(\\?0\\(\\?!4\\|6\\)d\\{2\\}\\)\\?\\)s\\?d\\{4\\}s\\?d\\{4\\}\\)\\)\\(s\\?\\#\\(d\\{4\\}\\|d\\{3\\}\\)\\)\\?\\$"; export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); From 434c906093476605d1b1e705965ff678fdebd825 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Fri, 25 Apr 2025 14:37:01 +0100 Subject: [PATCH 243/403] Privacy policy styling fixes (#363) * Privacy policy styling fixes Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- runner/src/server/views/ReportAnOutbreak/privacy.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runner/src/server/views/ReportAnOutbreak/privacy.html b/runner/src/server/views/ReportAnOutbreak/privacy.html index f192186e95..56955d9666 100644 --- a/runner/src/server/views/ReportAnOutbreak/privacy.html +++ b/runner/src/server/views/ReportAnOutbreak/privacy.html @@ -25,6 +25,7 @@

    About UKHSA

    The 'Report an outbreak' service enables Adult Social Care (ASC) providers to report outbreaks of acute respiratory infection (ARI) like flu or COVID-19. It automates the outbreak risk assessment process and provides immediate relevant outbreak management advice to the setting via email.

    This privacy notice explains what personal information we collect, use and may share for Report an outbreak. It explains what your rights are if we hold your personal information, and how you can find out more or raise a concern. +

    DHSC is the data controller for the personal information we collect, store and use to fulfil our remit.

    The information we collect

    @@ -127,7 +128,8 @@

    Your rights over your information

    Our legal basis to use your information

    The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. -
    +

    +

    The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are:

    From 63869a789e2399afea1605f6fcfd8405bf2252b6 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:21:20 +0100 Subject: [PATCH 244/403] Update TestForm1.json --- runner/src/server/forms/TestForm1.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json index 03c4601b0d..8e791b2dac 100644 --- a/runner/src/server/forms/TestForm1.json +++ b/runner/src/server/forms/TestForm1.json @@ -23,7 +23,17 @@ "sections": [], "conditions": [], "fees": [], - "outputs": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://iv5ypy2te5.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], "version": 2, "skipSummary": false, "feeOptions": {}, From ce83ece2ab14207a4c727a5c46f616e99170fbb4 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:22:47 +0100 Subject: [PATCH 245/403] Create TestForm2.json --- runner/src/server/forms/TestForm2.json | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 runner/src/server/forms/TestForm2.json diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json new file mode 100644 index 0000000000..8e791b2dac --- /dev/null +++ b/runner/src/server/forms/TestForm2.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + } + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://iv5ypy2te5.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} From b9779d703fe9cd81faf5ccd15163c782d4414d23 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:23:38 +0100 Subject: [PATCH 246/403] Create TestForm3.json --- runner/src/server/forms/TestForm3.json | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 runner/src/server/forms/TestForm3.json diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json new file mode 100644 index 0000000000..cf92780783 --- /dev/null +++ b/runner/src/server/forms/TestForm3.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + } + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test/kjhg", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} From 5a6aa1e759db256a7ea1ae8caca7c2829ff53736 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:24:35 +0100 Subject: [PATCH 247/403] Create TestForm4.json --- runner/src/server/forms/TestForm4.json | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 runner/src/server/forms/TestForm4.json diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json new file mode 100644 index 0000000000..941345554c --- /dev/null +++ b/runner/src/server/forms/TestForm4.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + } + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} From 4e30844375d1cddbcd3775ca59fa0c7ac1344e2d Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:25:13 +0100 Subject: [PATCH 248/403] Update TestForm2.json --- runner/src/server/forms/TestForm2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json index 8e791b2dac..508279d23e 100644 --- a/runner/src/server/forms/TestForm2.json +++ b/runner/src/server/forms/TestForm2.json @@ -29,7 +29,7 @@ "title": "Execute API", "type": "webhook", "outputConfiguration": { - "url": "https://iv5ypy2te5.execute-api.eu-west-2.amazonaws.com/test", + "url": "https://pksfrddt6i.execute-api.eu-west-2.amazonaws.com/test", "allowRetry": true } } From f9123c34229842053bdb6f1074a286480de465f8 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:25:50 +0100 Subject: [PATCH 249/403] Update TestForm4.json --- runner/src/server/forms/TestForm4.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json index 941345554c..4245ba665a 100644 --- a/runner/src/server/forms/TestForm4.json +++ b/runner/src/server/forms/TestForm4.json @@ -29,7 +29,7 @@ "title": "Execute API", "type": "webhook", "outputConfiguration": { - "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test", + "url": "https://50urt3mp8g.execute-api.eu-west-2.amazonaws.com/test/", "allowRetry": true } } From 9d2d576217e4a82e51d7c7b89bf041d9c26e1de7 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 25 Apr 2025 16:26:28 +0100 Subject: [PATCH 250/403] Create TestForm5.json --- runner/src/server/forms/TestForm5.json | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 runner/src/server/forms/TestForm5.json diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json new file mode 100644 index 0000000000..941345554c --- /dev/null +++ b/runner/src/server/forms/TestForm5.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + } + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} From 02a97a266679de9bb60adbbaaa855480664e2f8d Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 28 Apr 2025 11:08:58 +0100 Subject: [PATCH 251/403] Fix telephone regex escaping (#364) Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .../server/plugins/engine/components/TelephoneNumberField.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index d802f6c0b2..7e94f86912 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -6,8 +6,7 @@ import { addClassOptionIfNone, internationalPhoneValidator } from "./helpers"; import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; -const TELEPHONE_REGEX = - "\\^\\(\\(\\(\\+44s\\?\\(\\?!4\\|6\\)d\\{4\\}\\|\\(\\?0\\(\\?!4\\|6\\)d\\{4\\}\\)\\?\\)s\\?d\\{3\\}s\\?d\\{3\\}\\)\\|\\(\\(\\+44s\\?\\(\\?!4\\|6\\)d\\{3\\}\\|\\(\\?0\\(\\?!4\\|6\\)d\\{3\\}\\)\\?\\)s\\?d\\{3\\}s\\?d\\{4\\}\\)\\|\\(\\(\\+44s\\?\\(\\?!4\\|6\\)d\\{2\\}\\|\\(\\?0\\(\\?!4\\|6\\)d\\{2\\}\\)\\?\\)s\\?d\\{4\\}s\\?d\\{4\\}\\)\\)\\(s\\?\\#\\(d\\{4\\}\\|d\\{3\\}\\)\\)\\?\\$"; +const TELEPHONE_REGEX = "^(((\\\+44\\s?(?!4|6)\\d{4}|\\(?0(?!4|6)\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\\+44\\s?(?!4|6)\\d{3}|\\(?0(?!4|6)\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\\+44\\s?(?!4|6)\\d{2}|\\(?0(?!4|6)\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?\\#(\\d{4}|\\d{3}))?$"; export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); From c427b90a8d00943e79ce659bb293d6a2745ce156 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 28 Apr 2025 12:48:50 +0100 Subject: [PATCH 252/403] Remove broken forms (#365) Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- runner/src/server/forms/TestForm1.json | 41 -------------------------- runner/src/server/forms/TestForm2.json | 41 -------------------------- runner/src/server/forms/TestForm3.json | 41 -------------------------- runner/src/server/forms/TestForm4.json | 41 -------------------------- runner/src/server/forms/TestForm5.json | 41 -------------------------- 5 files changed, 205 deletions(-) delete mode 100644 runner/src/server/forms/TestForm1.json delete mode 100644 runner/src/server/forms/TestForm2.json delete mode 100644 runner/src/server/forms/TestForm3.json delete mode 100644 runner/src/server/forms/TestForm4.json delete mode 100644 runner/src/server/forms/TestForm5.json diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json deleted file mode 100644 index 8e791b2dac..0000000000 --- a/runner/src/server/forms/TestForm1.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - } - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - }, - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://iv5ypy2te5.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "authCheck": false -} diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json deleted file mode 100644 index 508279d23e..0000000000 --- a/runner/src/server/forms/TestForm2.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - } - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - }, - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://pksfrddt6i.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "authCheck": false -} diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json deleted file mode 100644 index cf92780783..0000000000 --- a/runner/src/server/forms/TestForm3.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - } - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - }, - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test/kjhg", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "authCheck": false -} diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json deleted file mode 100644 index 4245ba665a..0000000000 --- a/runner/src/server/forms/TestForm4.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - } - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - }, - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://50urt3mp8g.execute-api.eu-west-2.amazonaws.com/test/", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "authCheck": false -} diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json deleted file mode 100644 index 941345554c..0000000000 --- a/runner/src/server/forms/TestForm5.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - } - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - }, - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "authCheck": false -} From cb50bf934d32e45d9589a7ced99e16249e4ed35c Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 28 Apr 2025 13:49:28 +0100 Subject: [PATCH 253/403] Add files via upload --- runner/src/server/forms/TestForm1.json | 41 ++++++++++++++++++++++++++ runner/src/server/forms/TestForm2.json | 41 ++++++++++++++++++++++++++ runner/src/server/forms/TestForm3.json | 41 ++++++++++++++++++++++++++ runner/src/server/forms/TestForm4.json | 41 ++++++++++++++++++++++++++ runner/src/server/forms/TestForm5.json | 41 ++++++++++++++++++++++++++ 5 files changed, 205 insertions(+) create mode 100644 runner/src/server/forms/TestForm1.json create mode 100644 runner/src/server/forms/TestForm2.json create mode 100644 runner/src/server/forms/TestForm3.json create mode 100644 runner/src/server/forms/TestForm4.json create mode 100644 runner/src/server/forms/TestForm5.json diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json new file mode 100644 index 0000000000..abea982918 --- /dev/null +++ b/runner/src/server/forms/TestForm1.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://iv5ypy2te5.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json new file mode 100644 index 0000000000..963a23be9e --- /dev/null +++ b/runner/src/server/forms/TestForm2.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://pksfrddt6i.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json new file mode 100644 index 0000000000..dfac25ac37 --- /dev/null +++ b/runner/src/server/forms/TestForm3.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test/kjhg", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json new file mode 100644 index 0000000000..b47faba8ea --- /dev/null +++ b/runner/src/server/forms/TestForm4.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://50urt3mp8g.execute-api.eu-west-2.amazonaws.com/test/", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json new file mode 100644 index 0000000000..eff8967565 --- /dev/null +++ b/runner/src/server/forms/TestForm5.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "authCheck": false +} From 3cce8538cffcdaa8bcf9d919859338ce936be33a Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Mon, 28 Apr 2025 15:06:11 +0100 Subject: [PATCH 254/403] Improve PR checking (#366) * Improve PR validations by building the container to ensure yarn build works ok Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --------- Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- .github/workflows/pull-request.yml | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/pull-request.yml diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000000..6667e737d0 --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,49 @@ +name: Pull Request Validation + +on: + pull_request: + branches: + - '**' + +jobs: + build-docker: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + path: builder + + - name: Configure AWS Credentials + id: aws-creds + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: ${{ secrets.AWS_REGION }} + aws-access-key-id: ${{secrets.ACCESS_KEY_ID}} + aws-secret-access-key: ${{secrets.SECRET_ACCESS_KEY}} + + - name: Login to ECR + uses: docker/login-action@v2 + with: + registry: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{secrets.AWS_REGION}}.amazonaws.com + ecr: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Validate build configuration + uses: docker/build-push-action@v6 + with: + call: check + context: ./builder + file: ./builder/runner/Dockerfile + + - name: Build and push + uses: docker/build-push-action@v4 + with: + push: false + tags: user/app:latest + context: ./builder + file: ./builder/runner/Dockerfile + platforms: linux/amd64 From 7b534956b4f73875383729d8bc60639c337b1157 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 10:27:16 +0100 Subject: [PATCH 255/403] Update TestForm1.json --- runner/src/server/forms/TestForm1.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json index abea982918..8ea87d12ef 100644 --- a/runner/src/server/forms/TestForm1.json +++ b/runner/src/server/forms/TestForm1.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } From 2dd5538ea66e135180bbc71d3b5e94a82716b6a3 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 10:28:28 +0100 Subject: [PATCH 256/403] Update TestForm2.json --- runner/src/server/forms/TestForm2.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json index 963a23be9e..1eb4aaad1d 100644 --- a/runner/src/server/forms/TestForm2.json +++ b/runner/src/server/forms/TestForm2.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } From 1d7d78fe9ceedc83e2dbc7416633d52732ad096e Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 10:28:57 +0100 Subject: [PATCH 257/403] Update TestForm3.json --- runner/src/server/forms/TestForm3.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json index dfac25ac37..20e8828e56 100644 --- a/runner/src/server/forms/TestForm3.json +++ b/runner/src/server/forms/TestForm3.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } From 64c17ca4f0f7533839c1b4c8e27a8f22efe21306 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 10:29:12 +0100 Subject: [PATCH 258/403] Update TestForm4.json --- runner/src/server/forms/TestForm4.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json index b47faba8ea..7040b1fecf 100644 --- a/runner/src/server/forms/TestForm4.json +++ b/runner/src/server/forms/TestForm4.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } From 991db4ea3f4743510d85cdc075f48c0aa6252903 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 10:29:33 +0100 Subject: [PATCH 259/403] Update TestForm5.json --- runner/src/server/forms/TestForm5.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json index eff8967565..e085887cb2 100644 --- a/runner/src/server/forms/TestForm5.json +++ b/runner/src/server/forms/TestForm5.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } From 457d198f59925387ebd163465543e275d8219951 Mon Sep 17 00:00:00 2001 From: Connor Avery <55276424+connoravo@users.noreply.github.com> Date: Tue, 29 Apr 2025 10:33:34 +0100 Subject: [PATCH 260/403] Disallow all zero numbers Signed-off-by: Connor Avery <55276424+connoravo@users.noreply.github.com> --- runner/src/server/forms/TestForm1.json | 3 +-- runner/src/server/forms/TestForm2.json | 3 +-- runner/src/server/forms/TestForm3.json | 3 +-- runner/src/server/forms/TestForm4.json | 3 +-- runner/src/server/forms/TestForm5.json | 3 +-- .../server/plugins/engine/components/TelephoneNumberField.ts | 2 +- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json index abea982918..8ea87d12ef 100644 --- a/runner/src/server/forms/TestForm1.json +++ b/runner/src/server/forms/TestForm1.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json index 963a23be9e..1eb4aaad1d 100644 --- a/runner/src/server/forms/TestForm2.json +++ b/runner/src/server/forms/TestForm2.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json index dfac25ac37..20e8828e56 100644 --- a/runner/src/server/forms/TestForm3.json +++ b/runner/src/server/forms/TestForm3.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json index b47faba8ea..7040b1fecf 100644 --- a/runner/src/server/forms/TestForm4.json +++ b/runner/src/server/forms/TestForm4.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json index eff8967565..e085887cb2 100644 --- a/runner/src/server/forms/TestForm5.json +++ b/runner/src/server/forms/TestForm5.json @@ -36,6 +36,5 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {}, - "authCheck": false + "feeOptions": {} } diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index 7e94f86912..4825b98fe0 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -6,7 +6,7 @@ import { addClassOptionIfNone, internationalPhoneValidator } from "./helpers"; import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; -const TELEPHONE_REGEX = "^(((\\\+44\\s?(?!4|6)\\d{4}|\\(?0(?!4|6)\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\\+44\\s?(?!4|6)\\d{3}|\\(?0(?!4|6)\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\\+44\\s?(?!4|6)\\d{2}|\\(?0(?!4|6)\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?\\#(\\d{4}|\\d{3}))?$"; +const TELEPHONE_REGEX = "(?!0{5,})(((\\\+44\\s?(?!4|6)\\d{4}|\\(?0(?!4|6)\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\\+44\\s?(?!4|6)\\d{3}|\\(?0(?!4|6)\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\\+44\\s?(?!4|6)\\d{2}|\\(?0(?!4|6)\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?\\#(\\d{4}|\\d{3}))?"; export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); From 1245919c3107fd83c20d5de6cffa0ff99f18ac20 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 16:16:42 +0100 Subject: [PATCH 261/403] Update close-contact-form.json --- runner/src/server/forms/close-contact-form.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index 098ffd9ba8..e00c9163ba 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -3212,5 +3212,6 @@ "allowSubmissionWithoutPayment": true, "maxAttempts": 3, "showPaymentSkippedWarningPage": false - } + }, + "feedback": {} } From 8fcd3a956dde9d453019fec7ce3b101eccc7e9df Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 16:17:13 +0100 Subject: [PATCH 262/403] Update TestForm1.json --- runner/src/server/forms/TestForm1.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json index 8ea87d12ef..f0b228bb71 100644 --- a/runner/src/server/forms/TestForm1.json +++ b/runner/src/server/forms/TestForm1.json @@ -36,5 +36,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {} + "feeOptions": {}, + "feedback": {} } From c1ad47b8bec3b9be16478383483c06b01cb92c13 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 16:17:23 +0100 Subject: [PATCH 263/403] Update TestForm2.json --- runner/src/server/forms/TestForm2.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json index 1eb4aaad1d..c2714993f2 100644 --- a/runner/src/server/forms/TestForm2.json +++ b/runner/src/server/forms/TestForm2.json @@ -36,5 +36,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {} + "feeOptions": {}, + "feedback": {} } From 4fb31d597af3666c3bafb1a13a890f5058b10665 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 16:17:34 +0100 Subject: [PATCH 264/403] Update TestForm3.json --- runner/src/server/forms/TestForm3.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json index 20e8828e56..3d6b04f982 100644 --- a/runner/src/server/forms/TestForm3.json +++ b/runner/src/server/forms/TestForm3.json @@ -36,5 +36,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {} + "feeOptions": {}, + "feedback": {} } From 6521e3708b7c18f823cf315b32ff0c90af8fed19 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 16:17:45 +0100 Subject: [PATCH 265/403] Update TestForm4.json --- runner/src/server/forms/TestForm4.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json index 7040b1fecf..c382b49276 100644 --- a/runner/src/server/forms/TestForm4.json +++ b/runner/src/server/forms/TestForm4.json @@ -36,5 +36,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {} + "feeOptions": {}, + "feedback": {} } From d8398a95dbd0f1e575d74e98c7d018e25829b344 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 29 Apr 2025 16:18:13 +0100 Subject: [PATCH 266/403] Update TestForm5.json --- runner/src/server/forms/TestForm5.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json index e085887cb2..83291a345d 100644 --- a/runner/src/server/forms/TestForm5.json +++ b/runner/src/server/forms/TestForm5.json @@ -36,5 +36,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": {} + "feeOptions": {}, + "feedback": {} } From 35297db9428080a2d45e4f2b34b97a0a76671883 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 30 Apr 2025 16:17:58 +0100 Subject: [PATCH 267/403] Create TestForm6.json --- runner/src/server/forms/TestForm6.json | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 runner/src/server/forms/TestForm6.json diff --git a/runner/src/server/forms/TestForm6.json b/runner/src/server/forms/TestForm6.json new file mode 100644 index 0000000000..e968975051 --- /dev/null +++ b/runner/src/server/forms/TestForm6.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://carlzjjrvl.execute-api.eu-west-2.amazonaws.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "feedback": {} +} From 8e13c93ca91558e254b0479ec3d0f4b1a6864106 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 30 Apr 2025 16:29:02 +0100 Subject: [PATCH 268/403] Add space between service users and staff questions on vaccination page (#372) --- runner/src/server/forms/ReportAnOutbreak.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index f10c6635c1..91cbb477cb 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -1905,6 +1905,11 @@ "type": "listRef" } }, + { + "name": "Spacing", + "type": "Para", + "content": "
    " + }, { "name": "StaffCovid19Vaccination", "options": { From 8a797ab73604b2c493df0a23fba2bf197d035e1f Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 30 Apr 2025 17:14:08 +0100 Subject: [PATCH 269/403] CAR-1463 Magic link defects (#370) --- model/src/components/types.ts | 14 ++++- runner/src/server/forms/magic-link.json | 29 +++++++++- .../engine/components/ContentWithState.ts | 55 +++++++++++++++++++ .../server/plugins/engine/components/index.ts | 1 + .../MagicLinkFirstSubmitPageController.ts | 4 +- .../MagicLinkSecondSubmitPageController.ts | 4 +- .../MagicLinkSubmissionPageController.ts | 43 +++++++++------ .../views/components/contentwithstate.html | 3 + .../server/views/email-time-remaining.html | 46 ---------------- .../views/magic-link-time-remaining.html | 44 --------------- 10 files changed, 128 insertions(+), 115 deletions(-) create mode 100644 runner/src/server/plugins/engine/components/ContentWithState.ts create mode 100644 runner/src/server/plugins/engine/views/components/contentwithstate.html delete mode 100644 runner/src/server/views/email-time-remaining.html delete mode 100644 runner/src/server/views/magic-link-time-remaining.html diff --git a/model/src/components/types.ts b/model/src/components/types.ts index e671fd3f03..ce0ca3807f 100644 --- a/model/src/components/types.ts +++ b/model/src/components/types.ts @@ -24,6 +24,7 @@ export enum ComponentTypeEnum { FlashCard = "FlashCard", List = "List", ContextComponent = "ContextComponent", + ContentWithState = "ContentWithState", } export type ComponentType = @@ -52,7 +53,8 @@ export type ComponentType = | "FlashCard" | "List" | "WebsiteField" - | "ContextComponent"; + | "ContextComponent" + | "ContentWithState"; export type ComponentSubType = "field" | "content"; @@ -278,6 +280,10 @@ export interface ParaComponent extends ContentFieldBase { type: "Para"; } +export interface ContentWithStateComponent extends ContentFieldBase { + type: "ContentWithState"; +} + export interface DetailsComponent extends ContentFieldBase { type: "Details"; } @@ -352,7 +358,8 @@ export type ComponentDef = | UkAddressFieldComponent | YesNoFieldComponent | WebsiteFieldComponent - | ContextComponent; + | ContextComponent + | ContentWithStateComponent; // Components that render inputs. export type InputFieldsComponentsDef = @@ -378,7 +385,8 @@ export type ContentComponentsDef = | HtmlComponent | InsetTextComponent | ListComponent - | FlashCardComponent; + | FlashCardComponent + | ContentWithStateComponent; // Components that render Lists export type ListComponentsDef = diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json index cf971e68d8..a500547030 100644 --- a/runner/src/server/forms/magic-link.json +++ b/runner/src/server/forms/magic-link.json @@ -22,7 +22,7 @@ "name": "EmailIntro", "options": {}, "type": "Para", - "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.
    ", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.

    If you're returning to a report that you started in the last 3 days, use the same email address.
    ", "schema": {} }, { @@ -37,6 +37,15 @@ } } }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}

    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, { "name": "PrivacyNotice", "options": {}, @@ -69,7 +78,23 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email in 5 minutes, you can resubmit the email.

    Send a new email", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", "schema": {} } ] diff --git a/runner/src/server/plugins/engine/components/ContentWithState.ts b/runner/src/server/plugins/engine/components/ContentWithState.ts new file mode 100644 index 0000000000..c0bb8fdf82 --- /dev/null +++ b/runner/src/server/plugins/engine/components/ContentWithState.ts @@ -0,0 +1,55 @@ +import { FormData, FormSubmissionErrors, FormSubmissionState } from "../types"; +import config from "../../../config"; +import nunjucks from "nunjucks"; +import { FormComponent } from "./FormComponent"; +import _ from "lodash"; + +export class ContentWithState extends FormComponent { + getFormDataFromState(state: FormSubmissionState) { + const name = this.name; + const section = this.section; + let path = ""; + const result = {}; + const options: any = this.options || {}; + const stateVariable = options.stateVariable; + + if (section && section in state) { + path = `${section}.`; + state = { + ...state[section], + }; + } + + if (name in state) { + _.set(result, `${path}${name}`, this.getFormValueFromState(state)); + } + + // Use the configurable stateVariable from options + if (stateVariable in state) { + _.set(result, `${path}${stateVariable}`, state[stateVariable].toString()); + } + + return result; + } + + getViewModel(formData: FormData, errors: FormSubmissionErrors) { + const options: any = this.options; + + let content = this.content; + if (config.allowUserTemplates) { + content = nunjucks.renderString(content, { + ...formData, + }); + } + + const viewModel = { + ...super.getViewModel(formData, errors), + content: content, + }; + + if (options.condition) { + viewModel.condition = options.condition; + } + return viewModel; + } +} diff --git a/runner/src/server/plugins/engine/components/index.ts b/runner/src/server/plugins/engine/components/index.ts index fab35d4651..55101192e8 100644 --- a/runner/src/server/plugins/engine/components/index.ts +++ b/runner/src/server/plugins/engine/components/index.ts @@ -34,3 +34,4 @@ export { WebsiteField } from "./WebsiteField"; export { YesNoField } from "./YesNoField"; export { MonthYearField } from "./MonthYearField"; export { ContextComponent } from "./ContextComponent"; +export { ContentWithState } from "./ContentWithState"; diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts index e8a4f131b5..14cedf17d0 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts @@ -2,8 +2,8 @@ import { MagicLinkSubmissionPageController } from "./MagicLinkSubmissionPageCont // Original MagicLinkFirstSubmitPageController as a child class export class MagicLinkFirstSubmitPageController extends MagicLinkSubmissionPageController { - get timeRemainingTemplate() { - return "email-time-remaining"; + get timeRemainingRedirect() { + return `/${this.model.basePath}/email`; } get redirectAfterSubmission() { diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts index 81d710dfb4..a403856737 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts @@ -2,8 +2,8 @@ import { MagicLinkSubmissionPageController } from "./MagicLinkSubmissionPageCont // MagicLinkSecondSubmitPageController as a child class export class MagicLinkSecondSubmitPageController extends MagicLinkSubmissionPageController { - get timeRemainingTemplate() { - return "magic-link-time-remaining"; + get timeRemainingRedirect() { + return `/${this.model.basePath}/check-your-email`; } get redirectAfterSubmission() { diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts index b5d00753b6..11914e8173 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts @@ -25,8 +25,8 @@ export class MagicLinkSubmissionPageController extends PageController { } // Template-specific configurations that can be overridden by child classes - get timeRemainingTemplate() { - return "email-time-remaining"; + get timeRemainingRedirect() { + return `/${this.model.basePath}/email`; } get redirectAfterSubmission() { @@ -38,7 +38,6 @@ export class MagicLinkSubmissionPageController extends PageController { this.request = request; // Store request for use in getter methods const { cacheService } = request.services([]); const state = await cacheService.getState(request); - const email = state["email"]; const currentTime = Math.floor(Date.now() / 1000); // Check if there's a cookie with retry information @@ -66,12 +65,12 @@ export class MagicLinkSubmissionPageController extends PageController { // Otherwise show the time remaining page with consistent calculation const minutesRemaining = Math.ceil(timeRemaining / 60); - return h.view(this.timeRemainingTemplate, { - email, - minutesRemaining, - timeRemaining, - retryTimeoutSeconds: this.RETRY_TIMEOUT_SECONDS, + + await cacheService.mergeState(request, { + minutesRemaining: minutesRemaining, }); + + return redirectTo(request, h, this.timeRemainingRedirect); } catch (error) { request.logger.error(["Cookie parsing error", error.message]); return redirectTo(request, h, `/${this.model.basePath}/start`); @@ -148,6 +147,10 @@ export class MagicLinkSubmissionPageController extends PageController { const timeRemaining = this.RETRY_TIMEOUT_SECONDS - timeDifference; const minutesRemaining = Math.ceil(timeRemaining / 60); + await cacheService.mergeState(request, { + minutesRemaining: minutesRemaining, + }); + // Set consistent cookie for retry timeout const cookieValue = { retryAfter: hmacTimestamp + this.RETRY_TIMEOUT_SECONDS, @@ -157,11 +160,7 @@ export class MagicLinkSubmissionPageController extends PageController { h.state("magicLinkRetry", cookieValue, cookieOptions); // Show the time remaining page - return h.view(this.timeRemainingTemplate, { - email, - minutesRemaining, - timeRemaining, - }); + return redirectTo(request, h, this.timeRemainingRedirect); } } @@ -189,14 +188,26 @@ export class MagicLinkSubmissionPageController extends PageController { hmac.toString() ); - // Store data in state with a single merge operation - await cacheService.mergeState(request, { + // First, let's get the current state to see what's in it + const currentState = await cacheService.getState(request); + + // Create new state object with all the values we want to set + const newStateValues = { hmacSignature: hmacUrl, hmacExpiryTime: hmacExpiryTime, outputs: summaryViewModel.outputs, userCompletedSummary: true, webhookData: summaryViewModel.validatedWebhookData, - }); + }; + + // If minutesRemaining exists in the current state, explicitly remove it + if ("minutesRemaining" in currentState) { + // Use undefined instead of null to truly remove the property + newStateValues.minutesRemaining = undefined; + } + + // Store data in state with a single merge operation + await cacheService.mergeState(request, newStateValues); // Set cookie for retry timeout (using consistent constant) const cookieOptions = getCookieOptions(this.RETRY_TIMEOUT_SECONDS); diff --git a/runner/src/server/plugins/engine/views/components/contentwithstate.html b/runner/src/server/plugins/engine/views/components/contentwithstate.html new file mode 100644 index 0000000000..7e8c6f9076 --- /dev/null +++ b/runner/src/server/plugins/engine/views/components/contentwithstate.html @@ -0,0 +1,3 @@ +{% macro ContentWithState(component) %} +

    {{ component.model.content | safe }}

    +{% endmacro %} diff --git a/runner/src/server/views/email-time-remaining.html b/runner/src/server/views/email-time-remaining.html deleted file mode 100644 index f2901e1181..0000000000 --- a/runner/src/server/views/email-time-remaining.html +++ /dev/null @@ -1,46 +0,0 @@ -{% extends 'layout.html' %} - -{% block content %} -
    - Back -
    -
    -
    -

    What is your email address?

    - -

    We need to email you a secure link to the service.

    - -

    The link expires after 20 minutes.

    - -
    - - -
    -
    -

    By continuing, you agree to our privacy notice.

    - - - {% if minutesRemaining %} -
    -
    - - - Warning - You must wait - {% if minutesRemaining == 1 %} - 1 minute - {% else %} - {{ minutesRemaining }} minutes - {% endif %} - before resubmitting the email - -
    -
    - {% endif %} - - Send a new email -
    -
    -
    -
    -{% endblock %} diff --git a/runner/src/server/views/magic-link-time-remaining.html b/runner/src/server/views/magic-link-time-remaining.html deleted file mode 100644 index 61fa74d3d9..0000000000 --- a/runner/src/server/views/magic-link-time-remaining.html +++ /dev/null @@ -1,44 +0,0 @@ -{% extends 'layout.html' %} - -{% block content %} -
    - Back -
    - -
    -
    -

    Check your email

    -

    We've sent an email to {{ email }}.

    - -

    Click the link in the email to continue to report an outbreak.

    - -

    If you've not received an email

    - -

    Check your spam or junk folder.

    - -

    If you've not received the email in {{ retryTimeoutSeconds/60 }} minutes, you can resubmit the email.

    - - {% if minutesRemaining %} -
    -
    - - - Warning - You must wait - {% if minutesRemaining == 1 %} - 1 minute - {% else %} - {{ minutesRemaining }} minutes - {% endif %} - before resubmitting the email - -
    -
    - {% endif %} - - Send a new email -
    -
    -
    -
    -{% endblock %} From 0a715dd97d62e60afd693680eb14889e41c3b2ba Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 2 May 2025 12:59:02 +0100 Subject: [PATCH 270/403] Create TestForm7.json --- runner/src/server/forms/TestForm7.json | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 runner/src/server/forms/TestForm7.json diff --git a/runner/src/server/forms/TestForm7.json b/runner/src/server/forms/TestForm7.json new file mode 100644 index 0000000000..0641380c59 --- /dev/null +++ b/runner/src/server/forms/TestForm7.json @@ -0,0 +1,41 @@ +{ + "metadata": {}, + "startPage": "/hello", + "pages": [ + { + "path": "/hello", + "title": "Hello", + "components": [], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://xgovform.mancboy.com/test", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "feedback": {} +} From 6a5a8f43dd8ba55d41c468391ab489c0df8fe3ab Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Wed, 7 May 2025 15:25:00 +0100 Subject: [PATCH 271/403] LOPS3-330 - Comment out lines which potentially log PII (#375) --- .../CustomSummaryPageController.ts | 9 ++++--- .../pageControllers/SummaryPageController.ts | 9 ++++--- runner/src/server/services/ExitService.ts | 25 ++++++++++--------- runner/src/server/services/webhookService.ts | 18 +++++++------ .../src/submission/services/webhookService.ts | 9 ++++--- 5 files changed, 39 insertions(+), 31 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts index 97111cb311..3c620e5b4b 100644 --- a/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts @@ -184,10 +184,11 @@ export class CustomSummaryPageController extends PageController { userCompletedSummary: true, }); - request.logger.info( - ["Webhook data", "before send", request.yar.id], - JSON.stringify(summaryViewModel.validatedWebhookData) - ); + // Commented out due to potential for logging PII + // request.logger.info( + // ["Webhook data", "before send", request.yar.id], + // JSON.stringify(summaryViewModel.validatedWebhookData) + // ); await cacheService.mergeState(request, { webhookData: summaryViewModel.validatedWebhookData, diff --git a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts index 0770ab7091..077a8a5c26 100644 --- a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts @@ -168,10 +168,11 @@ export class SummaryPageController extends PageController { userCompletedSummary: true, }); - request.logger.info( - ["Webhook data", "before send", request.yar.id], - JSON.stringify(summaryViewModel.validatedWebhookData) - ); + // Commented out due to potential for logging PII + // request.logger.info( + // ["Webhook data", "before send", request.yar.id], + // JSON.stringify(summaryViewModel.validatedWebhookData) + // ); await cacheService.mergeState(request, { webhookData: summaryViewModel.validatedWebhookData, diff --git a/runner/src/server/services/ExitService.ts b/runner/src/server/services/ExitService.ts index f6369e166c..30dedb94c6 100644 --- a/runner/src/server/services/ExitService.ts +++ b/runner/src/server/services/ExitService.ts @@ -46,18 +46,19 @@ export class ExitService { }); return response.payload; } catch (e: unknown) { - if (e.data?.isResponseError) { - this.logger.error( - { - service: "ExitService", - method: "POST", - url, - reqBody: payload, - statusCode: e.data.res.statusCode, - }, - `${url} responded with an error when exiting form for ${payload?.exitState?.exitEmailAddress}.` - ); - } + // Commented out due to potential for logging PII + // if (e.data?.isResponseError) { + // this.logger.error( + // { + // service: "ExitService", + // method: "POST", + // url, + // reqBody: payload, + // statusCode: e.data.res.statusCode, + // }, + // `${url} responded with an error when exiting form for ${payload?.exitState?.exitEmailAddress}.` + // ); + // } throw e; } } diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index ed3534bb08..bf136daed0 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -29,10 +29,11 @@ export class WebhookService { method: "POST" | "PUT" = "POST", sendAdditionalPayMetadata: boolean = false ) { - this.logger.info( - ["WebhookService", "postRequest body"], - JSON.stringify(data) - ); + // Commented out due to potential for logging PII + // this.logger.info( + // ["WebhookService", "postRequest body"], + // JSON.stringify(data) + // ); let request = method === "POST" ? post : put; try { if (!sendAdditionalPayMetadata) { @@ -59,10 +60,11 @@ export class WebhookService { ["WebhookService", "postRequest"], `Webhook request to ${url} submitted OK` ); - this.logger.debug( - ["WebhookService", "postRequest", `REF: ${reference}`], - JSON.stringify(payload) - ); + // Commented out due to potential for logging PII + // this.logger.debug( + // ["WebhookService", "postRequest", `REF: ${reference}`], + // JSON.stringify(payload) + // ); return reference; } catch (error) { this.logger.error(["WebhookService", "postRequest"], error); diff --git a/submitter/src/submission/services/webhookService.ts b/submitter/src/submission/services/webhookService.ts index 907f113af7..14068a227f 100644 --- a/submitter/src/submission/services/webhookService.ts +++ b/submitter/src/submission/services/webhookService.ts @@ -28,11 +28,13 @@ export class WebhookService { try { parsed = JSON.parse(data); } catch (e) { - this.logger.error(`Not submitting ${data}, ${e}`); + // Commented out due to potential for logging PII + // this.logger.error(`Not submitting ${data}, ${e}`); return { payload: { error: e.message } }; } - this.logger.info({ data: parsed }, `${method} to ${url}`); + // Commented out due to potential for logging PII + // this.logger.info({ data: parsed }, `${method} to ${url}`); try { const { payload } = await request(url, { @@ -47,7 +49,8 @@ export class WebhookService { if (e.isBoom) { return e.output; } - this.logger.error({ data }, e); + // Commented out due to potential for logging PII + // this.logger.error({ data }, e); return { payload: { error: e.message } }; } } From 0c7a4b9b95fa5988353b841f9b9a89cec41cf3d2 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 8 May 2025 13:05:40 +0100 Subject: [PATCH 272/403] LOPS3-330 Comment out log line which could send PII to CloudWatch logs (#376) --- .../pageControllers/MagicLinkSubmissionPageController.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts index 11914e8173..74231e15d2 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts @@ -219,10 +219,11 @@ export class MagicLinkSubmissionPageController extends PageController { cookieOptions ); - request.logger.info( - ["Webhook data", "before send", request.yar.id], - JSON.stringify(summaryViewModel.validatedWebhookData) - ); + // Commented out due to potential for logging PII + // request.logger.info( + // ["Webhook data", "before send", request.yar.id], + // JSON.stringify(summaryViewModel.validatedWebhookData) + // ); // Get StatusService and submit the form const { statusService } = request.services([]); From b54965621e67a55326a941fc26f6c3774ae19186 Mon Sep 17 00:00:00 2001 From: Sulaiman Khan Date: Wed, 21 May 2025 13:00:52 +0000 Subject: [PATCH 273/403] KLS Basic test form config - Test form config for KLS UKHSA team --- runner/src/server/forms/kls-test-form.json | 1743 ++++++++++++++++++++ 1 file changed, 1743 insertions(+) create mode 100644 runner/src/server/forms/kls-test-form.json diff --git a/runner/src/server/forms/kls-test-form.json b/runner/src/server/forms/kls-test-form.json new file mode 100644 index 0000000000..8f731e192e --- /dev/null +++ b/runner/src/server/forms/kls-test-form.json @@ -0,0 +1,1743 @@ +{ + "metadata": {}, + "startPage": "/thank-you-for-verifying-your-email", + "pages": [ + { + "title": "Thank you for verifying your email", + "path": "/thank-you-for-verifying-your-email", + "components": [ + { + "name": "YrUDYI", + "options": {}, + "type": "Para", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the KLS team deal with your enquiry promptly and accurately. ", + "schema": {} + } + ], + "next": [{ "path": "/which-organisation-do-you-work-for" }], + "controller": "./pages/start.js" + }, + { + "path": "/about-you", + "title": "About you", + "components": [ + { + "name": "xnYXNM", + "options": {}, + "type": "Para", + "content": "Please complete as many fields as you can so that the KLS team will be able to contact you about your enquiry.", + "schema": {} + }, + { + "name": "WWpyux", + "options": {}, + "type": "TextField", + "title": "Full name", + "schema": {} + }, + { + "name": "RpctHr", + "options": { "required": true }, + "type": "TextField", + "title": "Job title", + "schema": {} + }, + { + "name": "afZPpL", + "options": {}, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ZjyQtC", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Should anyone else be included in emails about this enquiry?", + "schema": {} + } + ], + "next": [{ "path": "/check-your-details-before-submitting-your-enquiry" }] + }, + { + "path": "/type-of-enquiry", + "title": "Type of enquiry", + "components": [ + { + "name": "iAFhFY", + "options": {}, + "type": "Details", + "title": "Click here to learn about the types of enquiry that the KLS team support", + "content": "Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.\n

    \n\nSystematic review: the provision of complex literature searches to help in the production of a systematic review, with associated guidance on the stages of conducting a review. The time taken to deliver the search and advice will be dependent on the type of review.\n

    \n\nEvidence briefing: outlines the main messages taken from evidence that has been identified and selected using systematic methods and strict inclusion criteria. It usually takes at least 3 weeks to produce an Evidence Briefing and they are subject to certain eligibility criteria\n

    \n\nCurrent awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.\n

    \n\nGeneral enquiry: select this option for support with any other queries.", + "schema": {} + }, + { + "name": "tUKBgj", + "options": { "exposeToContext": false }, + "type": "RadiosField", + "title": "Which option best matches your enquiry?", + "list": "eKfmVf", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { + "path": "/about-your-current-awareness-alerts-query", + "condition": "OchNDo" + }, + { "path": "/how-can-we-help", "condition": "mZdZMC" }, + { "path": "/evidence-briefing-information", "condition": "eiTtgM" }, + { "path": "/about-your-enquiry", "condition": "XvwdpX" } + ] + }, + { + "path": "/additional-information", + "title": "Additional information", + "components": [ + { + "name": "YIrnKT", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "If you need to tell us more, please do so in this text box", + "schema": {} + }, + { + "name": "KefoiX", + "options": {}, + "type": "TextField", + "hint": "We will use this title as the subject line if we need to contact you by email", + "title": "Enquiry title", + "schema": {} + }, + { + "name": "aazUpS", + "options": { "required": false }, + "type": "FileUploadField", + "title": "Please attach any supporting information, for example a protocol or list of references.", + "schema": {}, + "hint": "" + } + ], + "next": [ + { "path": "/about-you" }, + { "path": "/about-you-GXSFdb", "condition": "EgJCgx" }, + { "path": "/about-you-dHykmu", "condition": "IbKdRK" } + ] + }, + { + "path": "/check-your-details-before-submitting-your-enquiry", + "title": "Check your details before submitting your enquiry", + "components": [], + "next": [], + "controller": "./pages/summary.js" + }, + { + "path": "/about-your-current-awareness-alerts-query", + "title": "About your current awareness alerts query", + "components": [ + { + "name": "voCgKn", + "options": {}, + "type": "InsetText", + "content": "Sign up to comprehensive alerts highlighting the latest research from peer-reviewed publications about important public health topics. Select the topics you want to sign up for below." + }, + { + "name": "Nuedpc", + "options": {}, + "type": "CheckboxesField", + "title": "Which alerts do you want to subscribe to?", + "list": "gTPicc" + } + ], + "next": [ + { "path": "/about-you" }, + { "path": "/about-you-GXSFdb", "condition": "EgJCgx" }, + { "path": "/about-you-dHykmu", "condition": "IbKdRK" } + ] + }, + { + "path": "/about-your-enquiry", + "title": "About your enquiry", + "components": [ + { + "name": "yYKOmJ", + "options": {}, + "type": "Para", + "content": "Please complete as many fields as you can, otherwise the KLS team will need to contact you for more information ", + "schema": {} + }, + { + "name": "LuoKqU", + "options": {}, + "type": "MultilineTextField", + "title": "What is your focussed question?", + "schema": {} + }, + { + "name": "bhBuDQ", + "options": { "required": true }, + "type": "MultilineTextField", + "title": "Explain any relevant concepts", + "schema": {}, + "hint": "Consider the questions: Who? What? Where? Why? When? How?" + }, + { + "name": "uBPfQS", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "Give an example of a paper that should be included in the output", + "schema": {}, + "hint": "Enter a relevant publication or key author you would expect to be included" + }, + { + "name": "VbhnXH", + "options": {}, + "type": "RadiosField", + "title": "Publication date range", + "list": "OGYVAD", + "hint": "Indicate the time period from which evidence should be sourced", + "values": { "type": "listRef" }, + "schema": {} + }, + { + "name": "MArgxL", + "options": { "required": false }, + "type": "TextField", + "title": "If you selected 'other' above, please give details", + "schema": {} + }, + { + "name": "etcpxo", + "options": {}, + "type": "TextField", + "title": "UK only or international?", + "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", + "schema": {} + }, + { + "name": "hQXIgL", + "options": { "maxDaysInPast": "0" }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "The KLS team will be in touch to discuss the feasibility of this date", + "schema": {} + }, + { + "name": "RCdnGJ", + "options": { "required": false, "optionalText": true }, + "type": "CheckboxesField", + "title": "Can we share the results with other public health professionals?", + "list": "IQAoJu" + }, + { + "name": "oNDRUt", + "options": { "required": false, "optionalText": true }, + "type": "CheckboxesField", + "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", + "list": "IQAoJu" + } + ], + "next": [ + { "path": "/systematic-review-questions", "condition": "dCqSKz" }, + { "path": "/literature-search-questions", "condition": "fNTYcH" }, + { "path": "/evidence-briefing-questions", "condition": "eiTtgM" } + ] + }, + { + "path": "/literature-search-questions", + "title": "Literature search questions", + "components": [ + { + "name": "BPoIas", + "options": {}, + "type": "Details", + "title": "What is a literature search?", + "content": "

    A literature search is a detailed, comprehensive and systematic search of the literature (published and unpublished) from a variety of quality sources about specific topics or conditions.

    \n\n

    The search yields a set of results on the topic in question – usually a list of journal articles and reports, each containing a summary (known as an abstract). Reading the results enables you to get an overview of what is known about the topic. This is often referred to as the ‘evidence base’ and is an integral part of the methodology for any UKHSA project.

    ", + "schema": {} + }, + { + "name": "PrVeBZ", + "options": {}, + "type": "RadiosField", + "title": "Literature search type", + "list": "aGVTgz", + "schema": {} + }, + { + "name": "WNVZzn", + "options": { "required": true }, + "type": "SelectField", + "title": "What will you primarily use the results of this search for?", + "list": "PxpncX", + "schema": {}, + "hint": "If more than one option apply, please select the most relevant", + "values": { "type": "listRef" } + }, + { + "name": "nPBXNt", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "If you selected 'other' above, please give details", + "schema": {} + }, + { + "name": "qwQlWP", + "options": { "required": true }, + "type": "CheckboxesField", + "title": "What is your preferred results format?", + "list": "LgzPJy", + "schema": {} + } + ], + "next": [{ "path": "/additional-information" }] + }, + { + "path": "/systematic-review-questions", + "title": "Systematic review questions", + "components": [ + { + "name": "tXsvXF", + "options": {}, + "type": "Details", + "title": "Types of systematic review", + "content": "

    The main types of evidence synthesis products are systematic reviews, rapid reviews, mapping reviews, scoping reviews and umbrella reviews. They all follow explicit, systematic methods to collate and synthesise findings of studies that address a clear question.

    \n \n

    Systematic reviews are the gold standard in evidence synthesis. However, they are time-consuming and resource-intensive. Rapid systematic methodologies use modified systematic review methods to accelerate the review process, and can be applied to all the types of reviews listed here.

    \n \n

    Systematic review
    \nSystematic reviews should have a clearly defined question and eligibility criteria. Study data is summarised using narrative text and tables; or sometimes as a meta-analysis, a statistical technique that provides an overall summary measure of effect.

    \n \n

    Scoping review
    \nScoping reviews are concerned with the ‘state of the evidence’. They are appropriate when exploring a topic to inform future research or policy development by clarifying key concepts or methods, using a broad review question. They usually have in-depth data extraction. Synthesis can include qualitative analysis, narrative synthesis, maps or a table.

    \n \n

    Mapping review
    \nMapping reviews are used to map out and categorise the literature. They are appropriate when information is required on where the evidence is, usually through a visual summary known as an evidence gap map, to inform research priorities. Study data is coded for use in the evidence gap map. Data extraction tends to be more limited than for a scoping review.

    \n \n

    Umbrella review
    \nAn umbrella review or “review of reviews” identifies multiple systematic reviews on related research questions and analyses their results across agreed outcomes. Umbrella reviews normally address a broad scope. Meta-analysis may be performed in order to provide an overall summary measure of effect.

    ", + "schema": {} + }, + { + "name": "lIUPMw", + "options": {}, + "type": "SelectField", + "title": "What type of review are you doing?", + "list": "cZlqVP", + "hint": "", + "values": { "type": "listRef" }, + "schema": {} + }, + { + "name": "IdTRkf", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "If you selected 'other' above, please give details", + "schema": {} + }, + { + "name": "byRMpb", + "options": { "required": true }, + "type": "SelectField", + "title": "What is the reason for conducting this review?", + "list": "tOKEMX", + "values": { "type": "listRef" }, + "schema": {} + }, + { + "name": "mBSuvI", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "If you selected 'other' above, please give details", + "schema": {} + }, + { + "name": "diftRU", + "options": { "required": true }, + "type": "SelectField", + "title": "Where do you intend to publish your review?", + "list": "Zappeq", + "values": { "type": "listRef" }, + "schema": {} + }, + { + "name": "NeCvDK", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "If you answered 'other', please give details", + "schema": {} + }, + { + "name": "oXOJJZ", + "options": {}, + "type": "InsetText", + "content": "A protocol describes the planned methods for your review. It should be written before your review begins and followed when you conduct the review. Guidance on writing a protocol is available in PRISMA for systematic review protocols or contact us for help.", + "schema": {} + }, + { + "name": "dmgVPY", + "options": { "required": true }, + "type": "YesNoField", + "title": "Have you written a protocol?", + "values": { "type": "listRef" }, + "schema": {}, + "hint": "If so, please use the file upload facility on the next page to share it with the KLS team" + } + ], + "next": [{ "path": "/additional-information" }] + }, + { + "path": "/evidence-briefing-questions", + "title": "Evidence briefing questions", + "components": [ + { + "name": "XxwIGa", + "options": {}, + "type": "InsetText", + "content": "In order for the KLS team to undertake the evidence briefing you must have a focused question which is feasible for KLS to answer in the form of a briefing within the standard timeframe of 3 weeks. Your request must also meet one of the criteria below in order to be eligible.", + "schema": {} + }, + { + "name": "ZKqQHi", + "options": {}, + "type": "RadiosField", + "title": "Evidence briefing criteria", + "list": "VPAkeH", + "schema": {} + }, + { + "name": "rcGqoK", + "options": { "required": false }, + "type": "TextField", + "title": "If you answered 'Other' above, please give details", + "schema": {} + }, + { + "name": "TNXqpA", + "options": { "required": true }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for population?", + "schema": {} + }, + { + "name": "KXXNzf", + "options": { "required": true }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for intervention or exposure?", + "schema": {} + }, + { + "name": "GjCFLx", + "options": { "required": true }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for setting/location?", + "schema": {} + }, + { + "name": "MgKlsM", + "options": { "required": true }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for outcomes?", + "schema": {} + }, + { + "name": "iYKvoN", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "Should anything be excluded?", + "schema": {} + } + ], + "next": [{ "path": "/additional-information" }] + }, + { + "path": "/how-can-we-help", + "title": "How can we help?", + "components": [ + { + "name": "CKlngs", + "options": {}, + "type": "MultilineTextField", + "hint": "Please share as much information about your query as possible in this text box", + "title": "How might we help?", + "schema": {} + }, + { + "name": "OYYaPc", + "options": {}, + "type": "TextField", + "hint": "We will use this title as the subject line if we need to contact you by email", + "title": "Enquiry title", + "schema": {} + }, + { + "name": "FIvjTg", + "options": { "required": false }, + "type": "FileUploadField", + "title": "Upload a file", + "hint": "To support the KLS team in dealing with your query, you may upload a file here.", + "schema": {} + } + ], + "next": [ + { "path": "/about-you" }, + { "path": "/about-you-GXSFdb", "condition": "EgJCgx" }, + { "path": "/about-you-dHykmu", "condition": "IbKdRK" } + ] + }, + { + "path": "/which-organisation-do-you-work-for", + "title": "Which organisation do you work for?", + "components": [ + { + "name": "wyvXTj", + "options": {}, + "type": "RadiosField", + "title": "Which organisation do you work for?", + "hint": "", + "list": "ULmwPo", + "schema": {}, + "values": { "type": "listRef" } + } + ], + "next": [ + { "path": "/type-of-enquiry" }, + { "path": "/how-can-we-help", "condition": "CRsuUh" }, + { "path": "/type-of-enquiry-JpEYIe", "condition": "IbKdRK" } + ] + }, + { + "path": "/type-of-enquiry-JpEYIe", + "title": "Type of enquiry", + "components": [ + { + "name": "RlHHWZ", + "options": {}, + "type": "Details", + "title": "Click here to learn about the types of enquiry that the KLS team support", + "content": "Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.\n

    \n\nCurrent awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.\n

    \n\nGeneral enquiry: select this option for support with any other queries.", + "schema": {} + }, + { + "name": "VeQCVM", + "options": {}, + "type": "RadiosField", + "list": "AUYYCW", + "title": "Which option best matches your enquiry?", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/how-can-we-help", "condition": "lsHzLP" }, + { + "path": "/about-your-current-awareness-alerts-query", + "condition": "MQeZyE" + }, + { "path": "/about-your-enquiry-RPOaaR" } + ] + }, + { + "path": "/about-your-enquiry-RPOaaR", + "title": "About your enquiry", + "components": [ + { + "name": "fXvmRh", + "options": {}, + "type": "Para", + "content": "Please complete as many fields as you can, otherwise the KLS team will need to contact you for more information ", + "schema": {} + }, + { + "name": "qvJHYP", + "options": {}, + "type": "MultilineTextField", + "title": "What is your focussed question?", + "schema": {} + }, + { + "name": "WYbcGt", + "options": {}, + "type": "MultilineTextField", + "title": "Explain any relevant concepts", + "hint": "Consider the questions: Who? What? Where? Why? When? How?", + "schema": {} + }, + { + "name": "Ercwfj", + "options": { "required": false }, + "type": "MultilineTextField", + "title": "Give an example of a paper that should be included in the output", + "hint": "Enter a relevant publication or key author you would expect to be included", + "schema": {} + }, + { + "name": "scPrBh", + "options": {}, + "type": "RadiosField", + "hint": "Indicate the time period from which evidence should be sourced", + "title": "Publication date range", + "list": "OGYVAD", + "schema": {} + }, + { + "name": "zVphJY", + "options": { "required": false }, + "type": "TextField", + "title": "If you selected 'other' above, please give details", + "schema": {} + }, + { + "name": "UjGoiE", + "options": {}, + "type": "TextField", + "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", + "title": "UK only or international?", + "schema": {} + }, + { + "name": "kgNqhg", + "options": { "maxDaysInFuture": "", "maxDaysInPast": "0" }, + "type": "DatePartsField", + "hint": "The KLS team will be in touch to discuss the feasibility of this date", + "title": "Desired completion date", + "schema": {} + }, + { + "name": "GxImes", + "options": { "required": false, "optionalText": true }, + "type": "CheckboxesField", + "title": "Can we share the results with other public health professionals?", + "list": "IQAoJu" + }, + { + "name": "DdsEuf", + "options": { "required": false, "optionalText": true }, + "type": "CheckboxesField", + "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", + "list": "IQAoJu" + } + ], + "next": [{ "path": "/literature-search-questions" }] + }, + { + "path": "/evidence-briefing-information", + "title": "Evidence briefing information", + "components": [ + { + "name": "jojhvk", + "options": {}, + "type": "Para", + "content": "Before proceeding with your request, please review the following criteria and expectations to ensure your request is suitable for an evidence briefing.", + "schema": {} + }, + { + "name": "ADkeed", + "options": {}, + "type": "Para", + "content": "To be eligible for an evidence briefing, the purpose of your request must fall into at least one of the following categories:", + "schema": {} + }, + { + "name": "sLYgMF", + "options": {}, + "type": "List", + "title": "EB purpose", + "list": "GNXXmY", + "schema": {} + }, + { + "name": "BrQyCZ", + "options": {}, + "type": "Para", + "content": "In addition, your request should have a clear, focused question that is feasible to address within the standard 3-week timeframe.", + "schema": {} + }, + { + "name": "lhetvO", + "options": {}, + "type": "Para", + "content": "Please note that if your request is too broad, outside the eligibility criteria, or time-sensitive, it may be more appropriate to conduct a literature search instead. ", + "schema": {} + } + ], + "next": [{ "path": "/about-your-enquiry" }] + }, + { + "path": "/about-you-GXSFdb", + "title": "About you", + "components": [ + { + "name": "nwLDox", + "options": {}, + "type": "Para", + "content": "Please complete as many fields as you can so that the KLS team will be able to contact you about your enquiry." + }, + { + "name": "dagbPo", + "options": {}, + "type": "TextField", + "title": "Full name" + }, + { + "name": "uksayz", + "options": { "required": true }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "nmlFzr", + "options": {}, + "type": "SelectField", + "hint": "Tell us which work group you belong to", + "title": "Group", + "list": "sYQQmN", + "values": { "type": "listRef" } + }, + { + "name": "oUmeSI", + "options": {}, + "type": "SelectField", + "hint": "Tell us which directorate you belong to", + "title": "Directorate", + "list": "pTYDbB" + }, + { + "name": "EkwRix", + "options": {}, + "type": "SelectField", + "hint": "Tell us your work location", + "title": "Location", + "list": "wrhJNi", + "values": { "type": "listRef" } + }, + { + "name": "SPKrpE", + "options": {}, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "rqzRcc", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Should anyone else be included in emails about this enquiry?" + } + ], + "next": [{ "path": "/check-your-details-before-submitting-your-enquiry" }] + }, + { + "path": "/about-you-dHykmu", + "title": "About you", + "components": [ + { + "name": "nBYObd", + "options": {}, + "type": "TextField", + "title": "Full name" + }, + { + "name": "CNbJUr", + "options": {}, + "type": "TextField", + "title": "Job title" + }, + { + "name": "PIjqqt", + "options": {}, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "YeDsms", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Should anyone else be included in emails about this enquiry?" + }, + { + "name": "oCVslj", + "options": {}, + "type": "SelectField", + "title": "Location", + "list": "iTBoCy", + "values": { "type": "listRef" } + } + ], + "next": [{ "path": "/check-your-details-before-submitting-your-enquiry" }] + } + ], + "lists": [ + { + "title": "Preferred contact method", + "name": "slVZMW", + "type": "string", + "items": [ + { "text": "email", "value": "email" }, + { "text": "telephone", "value": "telephone" } + ] + }, + { + "title": "Group", + "name": "sYQQmN", + "type": "string", + "items": [ + { + "description": "", + "text": "Chief Scientific Officer (CSO)", + "value": "CSO" + }, + { + "description": "", + "text": "Chief Medical Advisor (CMA)", + "value": "CMA" + }, + { + "description": "", + "text": "Chief Data Officer (CDO)", + "value": "CDO" + }, + { + "description": "", + "text": "Chief Operating Officer (COO)", + "value": "COO" + } + ] + }, + { + "title": "Directorate", + "name": "pTYDbB", + "type": "string", + "items": [ + { + "description": "", + "text": "CSO: Public Health Microbiology", + "value": "CSO: Public Health Microbiology" + }, + { + "description": "", + "text": "CSO: Radiation", + "value": "CSO: Radiation" + }, + { "description": "", "text": "Chemicals", "value": "Chemicals" }, + { + "value": "Climate and Environmental Hazards", + "description": "", + "text": "Climate and Environmental Hazards" + }, + { + "value": "CSO: Scientific Facilities and Performance", + "description": "", + "text": "CSO: Scientific Facilities and Performance" + }, + { + "value": "CSO: Science Strategy and Evidence", + "description": "", + "text": "CSO: Science Strategy and Evidence" + }, + { + "value": "CMA: Emergency Preparedness", + "description": "", + "text": "CMA: Emergency Preparedness" + }, + { + "value": "Resilience and Response (EPRR) and Response Operations", + "description": "", + "text": "Resilience and Response (EPRR) and Response Operations" + }, + { + "description": "", + "text": "CMA: Epidemic and Emerging Infections", + "value": "CMA: Epidemic and Emerging Infections" + }, + { + "value": "CMA: Global Health Protection", + "description": "", + "text": "CMA: Global Health Protection" + }, + { + "description": "", + "value": "CMA: Health Equity and Clinical Governance", + "text": "CMA: Health Equity and Clinical Governance" + }, + { + "value": "CMA: Health Protection in Regions", + "description": "", + "text": "CMA: Health Protection in Regions" + }, + { + "value": "CMA: Public Health Programmes", + "description": "", + "text": "CMA: Public Health Programmes" + }, + { + "value": "CDO: Analysis and Intelligence Assessment", + "description": "", + "text": "CDO: Analysis and Intelligence Assessment" + }, + { + "value": "CDO: Data Protection", + "description": "", + "text": "CDO: Data Protection" + }, + { + "value": "Security and Technology Services", + "description": "", + "text": "Security and Technology Services" + }, + { + "value": "CDO: Digital and Data", + "description": "", + "text": "CDO: Digital and Data" + }, + { + "value": "CDO: Digital and Technology Transition", + "description": "", + "text": "CDO: Digital and Technology Transition" + }, + { + "value": "COO: Commercial, Vaccines and Countermeasures Supply", + "description": "", + "text": "COO: Commercial, Vaccines and Countermeasures Supply" + }, + { + "value": "COO: Communications", + "description": "", + "text": "COO: Communications" + }, + { + "value": "COO: Finance, Performance, Risk and Assurance", + "description": "", + "text": "COO: Finance, Performance, Risk and Assurance" + }, + { + "value": "COO: People and Workplace", + "description": "", + "text": "COO: People and Workplace" + }, + { + "value": "COO: Public Inquiry", + "description": "", + "text": "COO: Public Inquiry" + }, + { + "value": "COO: Strategy and Policy", + "description": "", + "text": "COO: Strategy and Policy" + }, + { "value": "COO: Transformation", "text": "COO: Transformation" } + ] + }, + { + "title": "Location", + "name": "wrhJNi", + "type": "string", + "items": [ + { "description": "", "text": "Chilton", "value": "Chilton" }, + { "description": "", "text": "Colindale", "value": "Colindale" }, + { "description": "", "text": "Porton", "value": "Porton" }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Enquiry type", + "name": "eKfmVf", + "type": "string", + "items": [ + { "text": "Literature search", "value": "Literature search" }, + { "text": "Systematic review", "value": "Systematic review" }, + { "text": "Evidence briefing", "value": "Evidence briefing" }, + { + "text": "Current awareness alerts", + "value": "Current awareness alerts" + }, + { + "text": "General enquiry", + "value": "General", + "description": "Select this for all other enquiries" + } + ] + }, + { + "title": "Preferred results format", + "name": "LgzPJy", + "type": "string", + "items": [ + { "description": "", "text": "Endnote", "value": "Endnote" }, + { "description": "", "text": "Word", "value": "Word" }, + { "description": "", "text": "Excel", "value": "Excel" }, + { + "description": "", + "text": "RIS (for reference management software)", + "value": "RIS" + } + ] + }, + { + "title": "Priority or strategic objective", + "name": "RMetHZ", + "type": "string", + "items": [ + { + "description": "", + "text": "Achieve more equitable outcomes", + "value": "Achieve more equitable outcomes" + }, + { + "description": "", + "text": "Covid-19 response", + "value": "Covid-19 response" + }, + { + "description": "", + "text": "Drive international efforts to strengthen global surveillance and systems", + "value": "Drive international efforts to strengthen global surveillance and systems" + }, + { + "description": "", + "text": "Drive the development of countermeasures", + "value": "Drive the development of countermeasures" + }, + { + "description": "", + "text": "Eliminate Hepatitis C as a public health threat", + "value": "Eliminate Hepatitis C as a public health threat" + }, + { + "description": "", + "text": "Enhance the resilience and scalability of national and local public health systems", + "value": "Enhance the resilience and scalability of national and local public health systems" + }, + { + "description": "", + "text": "Ensure robust response capacity and capability to respond to Chemical, Biological, Radiological and Nuclear (CBRN) incidents", + "value": "Ensure robust response capacity and capability to respond to Chemical, Biological, Radiological and Nuclear (CBRN) incidents" + }, + { + "description": "", + "text": "Reduce the health harm from air pollution", + "value": "Reduce the health harm from air pollution" + }, + { + "description": "", + "text": "Reduce the impact of Antimicrobial Resistance (AMR)", + "value": "Reduce the impact of Antimicrobial Resistance (AMR)" + }, + { + "description": "", + "text": "Reduce vaccine preventable diseases", + "value": "Reduce vaccine preventable diseases" + }, + { + "description": "", + "text": "Strengthen preparedness across UKHSA for all hazards to health", + "value": "Strengthen preparedness across UKHSA for all hazards to health" + }, + { + "description": "", + "text": "Strengthen surveillance of health hazards", + "value": "Strengthen surveillance of health hazards" + }, + { + "description": "", + "text": "Support communities and services to adapt to and respond to climate and environmental change health", + "value": "Support communities and services to adapt to and respond to climate and environmental change health" + }, + { + "description": "If you select this item, please enter details below.", + "text": "OHID priority or objective", + "value": "OHID priority or objective - enter details" + }, + { + "text": "NHSE Public Health priority or objective", + "value": "NHSE Public Health priority or objective", + "description": "If you select this item, please enter details below" + } + ] + }, + { + "title": "Lit search type", + "name": "aGVTgz", + "type": "string", + "items": [ + { + "description": "It usually takes the KLS team at least 1 working week to complete this work.", + "text": "Option 1. A list of relevant literature search results in either chronological or author order.", + "value": "Option 1. A list of relevant literature search results in either chronological or author order" + }, + { + "description": "It usually takes the KLS team at least 2 working weeks to complete this request.", + "text": "Option 2. A list of the relevant literature search results, organised or annotated by theme or study type.", + "value": "Option 2. A list of the relevant literature search results, organised or annotated by theme or study type." + } + ] + }, + { + "title": "Literature search results purpose", + "name": "PxpncX", + "type": "string", + "items": [ + { + "description": "", + "text": "Collaborative project", + "value": "Collaborative project" + }, + { + "description": "", + "text": "Evidence summary", + "value": "Evidence summary" + }, + { "description": "", "text": "Guidelines", "value": "Guidelines" }, + { + "description": "", + "text": "Keeping up to date", + "value": "Keeping up to date" + }, + { "text": "Other", "value": "Other" }, + { + "description": "", + "text": "Policy and strategy development", + "value": "Policy and strategy development" + }, + { + "description": "", + "text": "Report writing", + "value": "Report writing" + }, + { + "description": "", + "text": "Research and development", + "value": "Research and development" + }, + { + "description": "", + "text": "Service development", + "value": "Service development" + } + ] + }, + { + "title": "Type of systematic review", + "name": "cZlqVP", + "type": "string", + "items": [ + { + "description": "", + "text": "Full systematic review", + "value": "Full systematic review" + }, + { + "description": "", + "text": "Scoping review", + "value": "Scoping review" + }, + { + "description": "", + "text": "Mapping review", + "value": "Mapping review" + }, + { "text": "Umbrella review", "value": "Umbrella review" }, + { + "description": "", + "text": "Unsure/to be confirmed", + "value": "Unsure/to be confirmed" + }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Yes, No, Unsure", + "name": "wYJotW", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" }, + { "text": "Unsure", "value": "Unsure" } + ] + }, + { + "title": "Publication location", + "name": "Zappeq", + "type": "string", + "items": [ + { "text": "Peer reviewed journal", "value": "Journal" }, + { "description": "", "text": "GOV.UK", "value": "GOV.UK" }, + { + "description": "", + "text": "Internal only", + "value": "Internal only" + }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Language", + "name": "rZyXKL", + "type": "string", + "items": [ + { "text": "English language only", "value": "English language only" }, + { "text": "English and other", "value": "English and other" }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Type of information requested", + "name": "bROvBS", + "type": "string", + "items": [ + { + "description": "", + "text": "Direction/Guidance", + "value": "Direction/Guidance" + }, + { + "description": "", + "text": "Secondary Evidence", + "value": "Secondary Evidence" + }, + { + "description": "", + "text": "Primary Research", + "value": "Primary Research" + }, + { + "description": "", + "text": "Ongoing Trials and Research", + "value": "Ongoing Trials and Research" + }, + { + "description": "", + "text": "Implementation Support", + "value": "Implementation Support" + }, + { + "text": "Information for the Public", + "value": "Information for the Public" + } + ] + }, + { + "title": "Affiliation", + "name": "ULmwPo", + "type": "string", + "items": [ + { "text": "UK Health Security Agency", "value": "UKHSA" }, + { + "text": "Office for Health Improvement and Disparities", + "value": "OHID" + }, + { "text": "NHS England Public Health", "value": "NHSE" }, + { "text": "Local Authority Public Health", "value": "LAPH" } + ] + }, + { + "title": "Reason for conducting review", + "name": "tOKEMX", + "type": "string", + "items": [ + { "text": "Evidence gap", "description": "", "value": "Evidence gap" }, + { + "description": "", + "text": "Updating previous evidence", + "value": "Updating previous evidence" + }, + { + "description": "", + "text": "Personal interest", + "value": "Personal interest" + }, + { + "description": "", + "text": "UKHSA priority topic", + "value": "UKHSA priority topic" + }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Publication date range", + "name": "OGYVAD", + "type": "string", + "items": [ + { "text": "last 3 years", "value": "3 years" }, + { "text": "last 5 years", "value": "5 years" }, + { "text": "Not applicable", "value": "Not applicable" }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Evidence briefing criteria", + "name": "VPAkeH", + "type": "string", + "items": [ + { + "description": "", + "text": "Strategy, policy or guideline development", + "value": "Strategy, policy or guideline development" + }, + { + "description": "", + "text": "Immediate action to improve or implement services", + "value": "Immediate action to improve or implement services" + }, + { + "description": "", + "text": "To contribute to an organisational priority or strategic objective", + "value": "To contribute to an organisational priority or strategic objective" + }, + { + "description": "", + "text": "Incident response", + "value": "Incident response" + }, + { "text": "Other", "value": "Other" } + ] + }, + { + "title": "Enquiry type LAPH", + "name": "AUYYCW", + "type": "string", + "items": [ + { "text": "Literature search", "value": "Literature search" }, + { + "text": "Current awareness alerts", + "value": "Current awareness alerts" + }, + { + "text": "General enquiry", + "value": "General", + "description": "Select this for all other enquiries" + } + ] + }, + { + "title": "EB purpose list", + "name": "GNXXmY", + "type": "string", + "items": [ + { + "text": "Strategy, policy, or guideline development", + "value": "Strategy, policy, or guideline development" + }, + { + "text": "Immediate action to improve or implement services", + "value": "Immediate action to improve or implement services" + }, + { + "text": "Contribution to an organisational priority or strategic objective", + "value": "Contribution to an organisational priority or strategic objective" + }, + { "text": "An incident response", "value": "An incident response" } + ] + }, + { + "title": "Location: LAPH", + "name": "iTBoCy", + "type": "string", + "items": [ + { "description": "", "text": "North East", "value": "North East" }, + { "description": "", "text": "North West", "value": "North West" }, + { "text": "Yorkshire and Humber", "value": "Yorkshire and Humber" }, + { "text": "East Midlands", "value": "East Midlands" }, + { "text": "West Midlands", "value": "West Midlands" }, + { + "description": "", + "text": "East of England", + "value": "East of England" + }, + { "description": "", "text": "London", "value": "London" }, + { "description": "", "text": "South East", "value": "South East" }, + { "description": "", "text": "South West", "value": "South West" } + ] + }, + { + "title": "Yes", + "name": "IQAoJu", + "type": "string", + "items": [{ "text": "Agree", "value": "Agree" }] + }, + { + "title": "Current awareness alerts options", + "name": "gTPicc", + "type": "string", + "items": [ + { + "text": "Adverse Weather and Health", + "value": "Adverse Weather and Health" + }, + { + "text": "Antimicrobial Resistance", + "value": "Antimicrobial Resistance" + }, + { "text": "COVID-19 Re-infection", "value": "COVID-19 Re-infection" }, + { + "text": "Global Public Health Security", + "value": "Global Public Health Security" + }, + { "text": "Healthy Ageing", "value": "Healthy Ageing" }, + { "text": "Infection", "value": "Infection" }, + { "text": "Long-COVID", "value": "Long-COVID" }, + { "text": "Mental Health", "value": "Mental Health" }, + { "text": "Musculoskeletal Health", "value": "Musculoskeletal Health" }, + { + "text": "Nutrition, Diet & Obesity", + "value": "Nutrition, Diet & Obesity" + }, + { "text": "Vector Borne Disease", "value": "Vector Borne Disease" } + ] + } + ], + "sections": [], + "conditions": [ + { + "displayName": "General route", + "name": "mZdZMC", + "value": { + "name": "General route", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + } + ] + } + }, + { + "displayName": "Current awareness route", + "name": "OchNDo", + "value": { + "name": "Current awareness route", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Current awareness alerts", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "Literature search", + "name": "fNTYcH", + "value": { + "name": "Literature search", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature search", + "display": "Literature search" + } + } + ] + } + }, + { + "displayName": "Evidence briefing", + "name": "eiTtgM", + "value": { + "name": "Evidence briefing", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Evidence briefing", + "display": "Evidence briefing" + } + } + ] + } + }, + { + "displayName": "Systematic review", + "name": "dCqSKz", + "value": { + "name": "Systematic review", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Systematic review", + "display": "Systematic review" + } + } + ] + } + }, + { + "displayName": "Not general or current awareness", + "name": "DsFDDA", + "value": { + "name": "Not general or current awareness", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + }, + { + "coordinator": "or", + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Current awareness alerts", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "LAPH user", + "name": "IbKdRK", + "value": { + "name": "LAPH user", + "conditions": [ + { + "field": { + "name": "wyvXTj", + "type": "RadiosField", + "display": "Which organisation do you work for?" + }, + "operator": "is", + "value": { "type": "Value", "value": "LAPH", "display": "LAPH" } + } + ] + } + }, + { + "displayName": "Other user", + "name": "CRsuUh", + "value": { + "name": "Other user", + "conditions": [ + { + "field": { + "name": "wyvXTj", + "type": "RadiosField", + "display": "Which organisation do you work for?" + }, + "operator": "is", + "value": { "type": "Value", "value": "Other", "display": "Other" } + } + ] + } + }, + { + "displayName": "LAPH general enquiry", + "name": "lsHzLP", + "value": { + "name": "LAPH general enquiry", + "conditions": [ + { + "field": { + "name": "VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + } + ] + } + }, + { + "displayName": "LAPH lit search", + "name": "lxGNAu", + "value": { + "name": "LAPH lit search", + "conditions": [ + { + "field": { + "name": "VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature search", + "display": "Literature search" + } + } + ] + } + }, + { + "displayName": "LAPH current awareness enquiry", + "name": "MQeZyE", + "value": { + "name": "LAPH current awareness enquiry", + "conditions": [ + { + "field": { + "name": "VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Current awareness alerts", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "Lit search 2", + "name": "CHaqWw", + "value": { + "name": "Lit search 2", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature search", + "display": "Literature search" + } + }, + { + "coordinator": "or", + "field": { + "name": "VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature search", + "display": "Literature search" + } + } + ] + } + }, + { + "displayName": "Not G, EB, CA", + "name": "XvwdpX", + "value": { + "name": "Not G, EB, CA", + "conditions": [ + { + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + }, + { + "coordinator": "or", + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Evidence briefing", + "display": "Evidence briefing" + } + }, + { + "coordinator": "or", + "field": { + "name": "tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Current awareness alerts", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "UKHSA staff", + "name": "EgJCgx", + "value": { + "name": "UKHSA staff", + "conditions": [ + { + "field": { + "name": "wyvXTj", + "type": "RadiosField", + "display": "Which organisation do you work for?" + }, + "operator": "is", + "value": { "type": "Value", "value": "UKHSA", "display": "UKHSA" } + } + ] + } + } + ], + "fees": [], + "outputs": [], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "declaration": "", + "name": "kls-service-enquiry-v3-pt2-1", + "feedback": { "feedbackForm": true, "url": "" }, + "phaseBanner": { "phase": "beta" } +} From 5503618af6870b887a4c8f1212cb23537d1cb494 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Wed, 28 May 2025 16:32:16 +0100 Subject: [PATCH 274/403] feat(timeout): redirect to form start page and support new config fields (#384) - Fix timeout.html redirecting incorrectly to the /config route by using the injected referer instead. (See: https://github.com/ukhsa-collaboration/digital-form-builder/blob/801bc7de3d8f57d316bc46a67518ef07914f54c3/runner/src/server/plugins/router.ts#L263)) - Timeout now correctly redirects to the form's start page. - Add support for new serviceName form field. This may overlap with existing name field... May be removed based on feedback. Use new fullStartPage form field instead of the global serviceStartPage setting. (Overrides config at https://github.com/ukhsa-collaboration/digital-form-builder/blob/801bc7de3d8f57d316bc46a67518ef07914f54c3/runner/config/default.js#L59 ) --- model/src/data-model/types.ts | 2 ++ model/src/schema/schema.ts | 2 ++ runner/src/server/plugins/views.ts | 6 +++--- runner/src/server/views/timeout.html | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 39133caf9b..1d6f46c8fd 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -214,4 +214,6 @@ export type FormDefinition = { jwtKey?: string | undefined; toggle?: boolean | string | undefined; retryTimeoutSeconds?: number | undefined; + fullStartPage?: string | undefined; + serviceName?: string | undefined; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 94ad528e10..2dff3b9170 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -346,6 +346,8 @@ export const Schema = joi toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), toggleRedirect: joi.string().optional(), retryTimeoutSeconds: joi.number().optional(), + fullStartPage: joi.string().optional(), + serviceName: joi.string().optional(), }); /** diff --git a/runner/src/server/plugins/views.ts b/runner/src/server/plugins/views.ts index 1a1544bcdd..215be23071 100644 --- a/runner/src/server/plugins/views.ts +++ b/runner/src/server/plugins/views.ts @@ -65,9 +65,9 @@ export default { appVersion: pkg.version, assetPath: "/assets", cookiesPolicy: request?.state?.cookies_policy, - serviceName: capitalize(config.serviceName), + serviceName: capitalize(request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || config.serviceName), feedbackLink: config.feedbackLink, - pageTitle: config.serviceName + " - GOV.UK", + pageTitle: (request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || config.serviceName) + " - GOV.UK", analyticsAccount: config.analyticsAccount, gtmId1: config.gtmId1, gtmId2: config.gtmId2, @@ -77,7 +77,7 @@ export default { BROWSER_REFRESH_URL: config.browserRefreshUrl, sessionTimeout: config.sessionTimeout, skipTimeoutWarning: false, - serviceStartPage: config.serviceStartPage || "#", + serviceStartPage: request.server?.app?.forms?.[request.params?.id]?.def?.fullStartPage || config.serviceName || "#", privacyPolicyUrl: config.privacyPolicyUrl || "/help/privacy", phaseTag: config.phaseTag, navigation: request?.auth.isAuthenticated diff --git a/runner/src/server/views/timeout.html b/runner/src/server/views/timeout.html index be8639dde9..d6e104f097 100644 --- a/runner/src/server/views/timeout.html +++ b/runner/src/server/views/timeout.html @@ -14,7 +14,7 @@

    Your application has timed out

    We have reset your application because you did not do anything for {{ sessionTimeout / 60000 }} minutes. We did this to keep your information secure.

    - Start application again + Start application again
    From d242c8cea361c868bdb66ea15ddd2a576a3930bd Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Wed, 28 May 2025 16:40:49 +0100 Subject: [PATCH 275/403] feat: Optional Security Headers added for webhook outputs (#379) * feat: Optional Security Headers added for webhook outputs - optional security header can be enabled by adding the following to your config: -"webhookHmacSharedKey": "SomeRandomHMACKey" (Replace "SomeRandomHMACKey" with your private HMAC secret key) - when ENABLED, the following headers will be included in the webhook request: x-hmac-time 1747750828 x-hmac-signature 7420964e60045e716a9b1d4fabcbc6a9cc913c7e63ac653b313d56a097a36d1a x-request-id 769164d0-5592-4a67-9932-038573732fdc (example values shown) -- NOTE: - THIS MUST USE **SHA-256** HASHING ALG - MESSAGE TO HASH is **x-hmac-time + x-request-id** (UTF-8 string, no seperators) - DIGEST OUTPUT is **HEX STRING** - x-hmac-time is **UNIX EPOCH TIME** - signature is computed using your shared **`webhookHmacSharedKey`** - You MUST validate that the timestamp is within an acceptable range (e.g. 5 minutes) *before* comparing the HMAC (do this on your backend) * Update statusService.ts remove redudant code. * Update types.ts made webhookHmacSharedKey optional --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + runner/src/server/services/statusService.ts | 30 ++++++++++++++++++-- runner/src/server/services/webhookService.ts | 8 +++++- runner/src/server/utils/hmac.ts | 23 +++++++++++++++ 5 files changed, 60 insertions(+), 3 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 1d6f46c8fd..02d27020ed 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -214,6 +214,7 @@ export type FormDefinition = { jwtKey?: string | undefined; toggle?: boolean | string | undefined; retryTimeoutSeconds?: number | undefined; + webhookHmacSharedKey?: string | undefined; fullStartPage?: string | undefined; serviceName?: string | undefined; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 2dff3b9170..88c7404cfd 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -346,6 +346,7 @@ export const Schema = joi toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), toggleRedirect: joi.string().optional(), retryTimeoutSeconds: joi.number().optional(), + webhookHmacSharedKey: joi.string().optional(), fullStartPage: joi.string().optional(), serviceName: joi.string().optional(), }); diff --git a/runner/src/server/services/statusService.ts b/runner/src/server/services/statusService.ts index 2df6c6afd9..27fc16c0d2 100644 --- a/runner/src/server/services/statusService.ts +++ b/runner/src/server/services/statusService.ts @@ -1,4 +1,5 @@ import { HapiRequest, HapiServer } from "../types"; +import { createHmacRaw } from "../utils/hmac"; import { CacheService, NotifyService, @@ -130,6 +131,29 @@ export class StatusService { let newReference; + /** + * If the OPTIONAL config contains webhookHmacSharedKey, then we send HMAC Auth headers + * This is used to confirm ONLY X-Gov's backend is sending data to our API + * Everyone else will be Rejected + */ + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + const hmacKey = model?.def?.webhookHmacSharedKey; + let customSecurityHeaders: Record = {}; + + if (hmacKey) { + const [hmacSignature, requestTime, hmacExpiryTime] = await createHmacRaw( + request.yar.id, + hmacKey + ); + customSecurityHeaders = { + "X-Request-ID": request.yar.id.toString(), + "X-HMAC-Signature": hmacSignature.toString(), + "X-HMAC-Time": requestTime.toString(), + }; + } + if (callback) { this.logger.info( ["StatusService", "outputRequests"], @@ -153,7 +177,8 @@ export class StatusService { firstWebhook.outputData.url, { ...formData }, "POST", - firstWebhook.outputData.sendAdditionalPayMetadata + firstWebhook.outputData.sendAdditionalPayMetadata, + customSecurityHeaders ); await this.cacheService.mergeState(request, { reference: newReference, @@ -178,7 +203,8 @@ export class StatusService { ...formData, }, "POST", - sendAdditionalPayMetadata + sendAdditionalPayMetadata, + customSecurityHeaders ) ), ]; diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index bf136daed0..aaeae14946 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -27,13 +27,15 @@ export class WebhookService { url: string, data: object, method: "POST" | "PUT" = "POST", - sendAdditionalPayMetadata: boolean = false + sendAdditionalPayMetadata: boolean = false, + authHeaders?: Record ) { // Commented out due to potential for logging PII // this.logger.info( // ["WebhookService", "postRequest body"], // JSON.stringify(data) // ); + let request = method === "POST" ? post : put; try { if (!sendAdditionalPayMetadata) { @@ -41,6 +43,10 @@ export class WebhookService { } const { payload } = await request(url, { ...DEFAULT_OPTIONS, + headers: { + ...DEFAULT_OPTIONS.headers, + ...(authHeaders || {}), + }, payload: JSON.stringify(data), }); diff --git a/runner/src/server/utils/hmac.ts b/runner/src/server/utils/hmac.ts index e2fc208fb0..ca34b45de9 100644 --- a/runner/src/server/utils/hmac.ts +++ b/runner/src/server/utils/hmac.ts @@ -80,6 +80,29 @@ export async function createHmac(email: string, hmacKey: string) { } } +/** + * Similar to the above but returns raw epoch timestamps, + * making it preferable for cryptographic logic. + * The other function may benefit from refactoring + * to separate display logic from core logic. */ +export async function createHmacRaw(message: string, hmacKey: string) { + try { + const currentTimestamp = Math.floor(Date.now() / 1000); + const dataToHash = message + currentTimestamp; + const hmac = crypto + .createHmac("sha256", hmacKey) + .update(dataToHash) + .digest("hex"); + + const expiryTimestamp = currentTimestamp + TIME_THRESHOLD; + + return [hmac, currentTimestamp, expiryTimestamp]; + } catch (error) { + console.error("Error creating HMAC (raw):", error); + throw error; + } +} + /** * Validates an HMAC signature */ From 69763d15f9c29d08769bc57cd763ee4a30851b6d Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Wed, 28 May 2025 16:58:31 +0100 Subject: [PATCH 276/403] feat: analytics support for form-level tracking (#378) - Update server to dynamically inject analytics on a per-form basis, replacing the previous global-only setting. - Enables each form to have its own tracking analytics configuration. - Note: This ignores the global server-wide config! Existing forms should be updated to include analytics in their form definitions. Format example: analytics: { gtmId1: string; gtmId2: string; matomoId: string; matomoUrl: string; } This object is *optional*. All items in this object are also *optional*. --- model/src/data-model/types.ts | 8 +++ model/src/schema/schema.ts | 8 +++ runner/src/server/forms/ReportAnOutbreak.json | 3 ++ runner/src/server/plugins/views.ts | 54 +++++++++++-------- 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 02d27020ed..b679498ee1 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -188,6 +188,13 @@ export type ExitOptions = { format?: "STATE" | "WEBHOOK"; }; +export type Analytics = { + gtmId1: string; + gtmId2: string; + matomoId: string; + matomoUrl: string; +}; + /** * `FormDefinition` is a typescript representation of `Schema` */ @@ -214,6 +221,7 @@ export type FormDefinition = { jwtKey?: string | undefined; toggle?: boolean | string | undefined; retryTimeoutSeconds?: number | undefined; + analytics?: Analytics; webhookHmacSharedKey?: string | undefined; fullStartPage?: string | undefined; serviceName?: string | undefined; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 88c7404cfd..8306bd91e8 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -209,6 +209,13 @@ const feeSchema = joi.object().keys({ prefix: joi.string().optional(), }); +const analyticsSchema = joi.object().keys({ + gtmId1: joi.string().allow("").optional(), + gtmId2: joi.string().allow("").optional(), + matomoId: joi.string().allow("").optional(), + matomoUrl: joi.string().uri().allow("").optional(), +}); + const multiApiKeySchema = joi.object({ test: joi.string().optional(), smoke: joi.string().optional(), @@ -346,6 +353,7 @@ export const Schema = joi toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), toggleRedirect: joi.string().optional(), retryTimeoutSeconds: joi.number().optional(), + analytics: analyticsSchema.optional(), webhookHmacSharedKey: joi.string().optional(), fullStartPage: joi.string().optional(), serviceName: joi.string().optional(), diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 91cbb477cb..32b2f02b2f 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2,6 +2,9 @@ "metadata": {}, "authentication": true, "toggle": "${magicLinkToggle}", + "analytics": { + "gtmId1": "GTM-MM6VPCXX" + }, "startPage": "/start", "pages": [ { diff --git a/runner/src/server/plugins/views.ts b/runner/src/server/plugins/views.ts index 215be23071..a554a0682f 100644 --- a/runner/src/server/plugins/views.ts +++ b/runner/src/server/plugins/views.ts @@ -61,28 +61,36 @@ export default { `${path.dirname(resolve.sync("hmpo-components"))}/components`, ], isCached: !config.isDev, - context: (request: HapiRequest) => ({ - appVersion: pkg.version, - assetPath: "/assets", - cookiesPolicy: request?.state?.cookies_policy, - serviceName: capitalize(request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || config.serviceName), - feedbackLink: config.feedbackLink, - pageTitle: (request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || config.serviceName) + " - GOV.UK", - analyticsAccount: config.analyticsAccount, - gtmId1: config.gtmId1, - gtmId2: config.gtmId2, - location: request?.app.location, - matomoId: config.matomoId, - matomoUrl: config.matomoUrl, - BROWSER_REFRESH_URL: config.browserRefreshUrl, - sessionTimeout: config.sessionTimeout, - skipTimeoutWarning: false, - serviceStartPage: request.server?.app?.forms?.[request.params?.id]?.def?.fullStartPage || config.serviceName || "#", - privacyPolicyUrl: config.privacyPolicyUrl || "/help/privacy", - phaseTag: config.phaseTag, - navigation: request?.auth.isAuthenticated - ? [{ text: "Sign out", href: "/logout" }] - : null, - }), + context: (request: HapiRequest) => { + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + const analytics = model?.def?.analytics || {}; + + return { + appVersion: pkg.version, + assetPath: "/assets", + cookiesPolicy: request?.state?.cookies_policy, + serviceName: capitalize(request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || config.serviceName), + feedbackLink: config.feedbackLink, + pageTitle: (request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || config.serviceName) + " - GOV.UK", + analyticsAccount: config.analyticsAccount, + gtmId1: analytics.gtmId1 || "", + gtmId2: analytics.gtmId2 || "", + location: request?.app.location, + matomoId: analytics.matomoId || "", + matomoUrl: analytics.matomoUrl || "", + BROWSER_REFRESH_URL: config.browserRefreshUrl, + sessionTimeout: config.sessionTimeout, + skipTimeoutWarning: false, + serviceStartPage: request.server?.app?.forms?.[request.params?.id]?.def?.fullStartPage || config.serviceName || "#", + privacyPolicyUrl: config.privacyPolicyUrl || "/help/privacy", + phaseTag: config.phaseTag, + navigation: request?.auth.isAuthenticated + ? [{ text: "Sign out", href: "/logout" }] + : null, + }; + }, + }, }; From cd5f8e41cdf29acd488451382f99a6bae4fc9a41 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Wed, 28 May 2025 17:00:45 +0100 Subject: [PATCH 277/403] feat(magic-link): Implement domain whitelist for email validation (#377) * feat(magic-link): Implement domain whitelist for email validation Adds configuration options to the magic-link feature to restrict access based on email domain: - Introduces `allowedDomains` config: A list of allowed email domains - e.g: ["gmail.com", "example.com"] - Introduces `invalidDomainRedirect` config: A URL to redirect users with disallowed domains (i.e: Not in the allowedDomains list) * Modified functionality + added tests - Added whitespace trimming to email input - Added basic regex check for email format - Fixed bug allowing false-positives where partial domain matches allowed (notexample.com would incorrectly go through if example.com was in domain list) - Added tests --- model/src/data-model/types.ts | 2 + model/src/schema/schema.ts | 2 + .../MagicLinkSubmissionPageController.ts | 13 ++ runner/src/server/utils/domain.ts | 21 +++ runner/test/cases/server/utils/domain.test.ts | 146 ++++++++++++++++++ 5 files changed, 184 insertions(+) create mode 100644 runner/src/server/utils/domain.ts create mode 100644 runner/test/cases/server/utils/domain.test.ts diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index b679498ee1..a34c6f0e59 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -221,6 +221,8 @@ export type FormDefinition = { jwtKey?: string | undefined; toggle?: boolean | string | undefined; retryTimeoutSeconds?: number | undefined; + allowedDomains?: string[] | undefined; + invalidDomainRedirect?: string | undefined; analytics?: Analytics; webhookHmacSharedKey?: string | undefined; fullStartPage?: string | undefined; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 8306bd91e8..42982bfd8e 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -353,6 +353,8 @@ export const Schema = joi toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), toggleRedirect: joi.string().optional(), retryTimeoutSeconds: joi.number().optional(), + allowedDomains: joi.array().items(joi.string()).optional(), + invalidDomainRedirect: joi.string().optional(), analytics: analyticsSchema.optional(), webhookHmacSharedKey: joi.string().optional(), fullStartPage: joi.string().optional(), diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts index 74231e15d2..56fb480bb5 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts @@ -3,6 +3,7 @@ import { PageController } from "./PageController"; import { redirectTo } from "../helpers"; import { HapiRequest, HapiResponseToolkit } from "server/types"; import { createHmac } from "src/server/utils/hmac"; +import { isAllowedDomain } from "src/server/utils/domain"; // Shared options for cookie settings const getCookieOptions = (timeRemaining) => ({ @@ -132,6 +133,18 @@ export class MagicLinkSubmissionPageController extends PageController { return redirectTo(request, h, `/${model.basePath}/start`); } + const allowedEmailDomains = this.model.def.allowedDomains ?? []; + //hardcoded start page as a fallback if InvalidDomainRedirectPage not added to config + const InvalidDomainRedirectPage = + model.def.invalidDomainRedirect || "/start"; + if (!isAllowedDomain(email, allowedEmailDomains)) { + request.logger.warn([ + "DomainValidation", + `Email domain '${email.split("@")[1]}' not allowed`, + ]); + return redirectTo(request, h, InvalidDomainRedirectPage); + } + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; const currentTime = Math.floor(Date.now() / 1000); diff --git a/runner/src/server/utils/domain.ts b/runner/src/server/utils/domain.ts new file mode 100644 index 0000000000..45800dadb9 --- /dev/null +++ b/runner/src/server/utils/domain.ts @@ -0,0 +1,21 @@ +export function isAllowedDomain( + email: string, + allowedDomains: string[] +): boolean { + if (!allowedDomains || allowedDomains.length === 0) { + return true; + } + + const trimmedEmail = email.trim(); + const basicEmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + + if (!basicEmailRegex.test(trimmedEmail)) { + return false; + } + + const domain = trimmedEmail.split("@")[1].toLowerCase(); + return allowedDomains.some((allowed) => { + const allowedLower = allowed.toLowerCase(); + return domain === allowedLower || domain.endsWith("." + allowedLower); + }); +} diff --git a/runner/test/cases/server/utils/domain.test.ts b/runner/test/cases/server/utils/domain.test.ts new file mode 100644 index 0000000000..253d7cb926 --- /dev/null +++ b/runner/test/cases/server/utils/domain.test.ts @@ -0,0 +1,146 @@ +import * as Code from "@hapi/code"; +import * as Lab from "@hapi/lab"; +import { isAllowedDomain } from "server/utils/domain"; + +const { expect } = Code; +const lab = Lab.script(); +exports.lab = lab; +const { suite, test } = lab; + +suite("Empty whitelist: should return all emails as valid", () => { + test("Empty email with empty domain whitelist", () => { + const email: string = ""; + const domainList: string[] = []; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Invalid email with no '@' and empty domain whitelist", () => { + const email: string = "test"; + const domainList: string[] = []; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with empty domain whitelist", () => { + const email: string = "example@example.com"; + const domainList: string[] = []; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); +}); + +suite("Whitelist with a single domain", () => { + test("Valid email with leading/trailing whitespace", () => { + const email = " test@example.com "; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email in domain whitelist", () => { + const email: string = "test@example.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with uppercase domain in address", () => { + const email: string = "test@ExAmPlE.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with uppercase domain in whitelist", () => { + const email: string = "test@example.com"; + const domainList: string[] = ["Example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid subdomain should match base domain", () => { + const email = "user@mail.example.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Invalid email: no '@'", () => { + const email: string = "test"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: only '@'", () => { + const email: string = "@"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: missing local-part", () => { + const email: string = "@example.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain not in whitelist", () => { + const email: string = "test@gmail.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain does not exactly match whitelist", () => { + const email: string = "test@example.test.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain ends with similar string", () => { + const email = "user@notexample.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: multiple '@' symbols", () => { + const email = "test@me@example.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: missing TLD", () => { + const email = "user@example"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain is substring of whitelisted domain", () => { + const email = "user@ple.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); +}); + +suite("Whitelist with multiple domains", () => { + test("Valid email in one of the whitelisted domains", () => { + const email: string = "test@gmail.com"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with uppercase domain, mixed whitelist order", () => { + const email: string = "test@ExAmPlE.com"; + const domainList: string[] = ["gmail.com", "example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Invalid email: no '@'", () => { + const email: string = "test"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: only '@'", () => { + const email: string = "@"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: missing local part", () => { + const email: string = "@example.com"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); +}); From a93d551b30de3caffb76e8b864d3e440decb2671 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Wed, 28 May 2025 17:02:52 +0100 Subject: [PATCH 278/403] Feat: Allow forms to use their own magic-link config (#383) - Previously, all users were redirected to CareOBRA's form via a hardcoded config in MagicLinkRedirectController.ts - Updated the controller to allow each form to specify its own magicLinkConfig, enabling flexible redirects per form - Fallback remains for undefined, mainly for backwards compat purposes --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + .../pageControllers/MagicLinkRedirectController.ts | 11 ++++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index a34c6f0e59..f6442372c4 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -221,6 +221,7 @@ export type FormDefinition = { jwtKey?: string | undefined; toggle?: boolean | string | undefined; retryTimeoutSeconds?: number | undefined; + magicLinkConfig?: string | undefined; allowedDomains?: string[] | undefined; invalidDomainRedirect?: string | undefined; analytics?: Analytics; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 42982bfd8e..db96fa3d7c 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -353,6 +353,7 @@ export const Schema = joi toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), toggleRedirect: joi.string().optional(), retryTimeoutSeconds: joi.number().optional(), + magicLinkConfig: joi.string().optional(), allowedDomains: joi.array().items(joi.string()).optional(), invalidDomainRedirect: joi.string().optional(), analytics: analyticsSchema.optional(), diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts index 5ca1114e88..40b52e0291 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts @@ -4,7 +4,16 @@ import { HapiRequest, HapiResponseToolkit } from "server/types"; export class MagicLinkRedirectController extends PageController { makeGetRouteHandler() { return async (request: HapiRequest, h: HapiResponseToolkit) => { - return h.redirect("/magic-link/start").code(302); + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + + // Fallback to the default Magic Link config used by CareOBRA + // WARNING: This has hardcoded values + // You should define your own magicLinkConfig in your (main) form config + const magicLinkConfig = model?.def?.magicLinkConfig ?? 'magic-link'; + + return h.redirect(`/${magicLinkConfig}/start`).code(302); }; } } From d349d1c7da2cdf24c2061f81e986414bc3b51621 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Thu, 29 May 2025 13:35:56 +0100 Subject: [PATCH 279/403] feat/fix: URL construction for hmac email (#385) - updated hmacurl construction to dynamically use the model's basepath instead of the hardcoded "magic-link" path. - enables different magic-link forms to send emails that link to their specific pages, improving flexibility and reusability. --- .../engine/pageControllers/MagicLinkSubmissionPageController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts index 56fb480bb5..d6a85f2b56 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts @@ -192,7 +192,7 @@ export class MagicLinkSubmissionPageController extends PageController { } // Construct the magic link URL - const hmacUrlStart = "/magic-link/return?email="; + const hmacUrlStart = `/${model.basePath}/return?email=` const hmacUrl = hmacUrlStart.concat( email, "&request_time=", From 64f3bb5799ec09b72a85e9a3e05672a0610510a9 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Thu, 29 May 2025 13:44:34 +0100 Subject: [PATCH 280/403] - Test KLS config with features enabled (#386) - First version of the kls form complete. --- runner/src/server/forms/kls-magic-link.json | 223 ++++++++++++++++++ .../{kls-test-form.json => kls-path-1.json} | 165 +++++++++++-- 2 files changed, 371 insertions(+), 17 deletions(-) create mode 100644 runner/src/server/forms/kls-magic-link.json rename runner/src/server/forms/{kls-test-form.json => kls-path-1.json} (93%) diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json new file mode 100644 index 0000000000..f6cf441e08 --- /dev/null +++ b/runner/src/server/forms/kls-magic-link.json @@ -0,0 +1,223 @@ +{ + "startPage": "/start", + "skipSummary": true, + "retryTimeoutSeconds": 300, + "analytics": { + "matomoId": "11", + "matomoUrl": "https://ukhsakls.matomo.cloud" + }, + "magicLinkConfig": "kls-magic-link", + "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk"], + "invalidDomainRedirect": "/kls-path-1/please-contact-us-via-email", + "serviceName": "Knowledge and Library Services", + "fullStartPage": "/kls-path-1/contact-the-knowledge-and-library-services-team", + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController", + "unauthenticated": true + }, + { + "title": "What is your email address?", + "path": "/email", + "unauthenticated": true, + "continueButtonText": "Continue", + "showContinueButton": true, + "backLinkFallback": "/YOUMESSEDUP", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.

    If you're returning to a report that you started in the last 3 days, use the same email address.
    ", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Email address", + "name": "email", + "options": { + "exposeToContext": true, + "customValidationMessages": { + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + } + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice.", + "schema": {} + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "unauthenticated": true, + "backLinkFallback": "/magic-link/magic-link", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", + "schema": {} + } + ] + }, + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "unauthenticated": true, + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    ", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "path": "/email-confirmed", + "title": "Email confirmed", + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "type": "Para", + "content": "You have successfully confirmed your email address. You can continue to REPLACE ME.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "phaseBanner": { + "phase": "beta" + }, + "metadata": {}, + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "CareOBRA MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "klsdevapikeys-c3c1543d-5025-4560-9766-46f5827a6811-f5d1bc8f-803e-4701-a6fe-840e1209fde8", + "templateId": "7b61b152-8648-4e5b-af0c-81f7c3889bb2", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "hmacnkeyyyyyys" + } + } + ], + "jwtKey": "sdasdsadsasdasasdasdsdsdsdas", + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, + "version": 2, + "conditions": [] +} diff --git a/runner/src/server/forms/kls-test-form.json b/runner/src/server/forms/kls-path-1.json similarity index 93% rename from runner/src/server/forms/kls-test-form.json rename to runner/src/server/forms/kls-path-1.json index 8f731e192e..f61bba3847 100644 --- a/runner/src/server/forms/kls-test-form.json +++ b/runner/src/server/forms/kls-path-1.json @@ -1,23 +1,88 @@ { "metadata": {}, - "startPage": "/thank-you-for-verifying-your-email", + "startPage": "/contact-the-knowledge-and-library-services-team", + "fullStartPage": "/kls-path-1/contact-the-knowledge-and-library-services-team", + "serviceName": "Knowledge and Library Services", + "analytics": { + "matomoUrl": "https://ukhsakls.matomo.cloud", + "matomoId": "11" + }, + "webhookHmacSharedKey": "SomeRandomHMACKey", + "magicLinkConfig": "kls-magic-link", "pages": [ { - "title": "Thank you for verifying your email", - "path": "/thank-you-for-verifying-your-email", + "title": "Contact the Knowledge and Library Services team", + "path": "/contact-the-knowledge-and-library-services-team", + "components": [], + "next": [ + { + "path": "/which-organisation-do-you-work-for" + } + ], + "controller": "./pages/start.js" + }, + { + "path": "/which-organisation-do-you-work-for", + "title": "Which organisation do you work for?", "components": [ { - "name": "YrUDYI", + "name": "ZpmVWP", "options": {}, - "type": "Para", - "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the KLS team deal with your enquiry promptly and accurately. ", - "schema": {} + "type": "RadiosField", + "title": "Organisation", + "hint": "The KLS service is available to staff from: UK Health Security Agency, Office for Health Improvement and Disparities, NHS England Public Health, and Local Authority Public Health. \n\nIf you do not belong to one of these organisations you can still contact the KLS team by selecting the 'Other' option to find the team's email address.", + "list": "uIwkHV", + "schema": {}, + "values": { + "type": "listRef" + } } ], - "next": [{ "path": "/which-organisation-do-you-work-for" }], - "controller": "./pages/start.js" + "next": [ + { + "path": "/please-contact-us-via-email", + "condition": "BOkxIN" + }, + { + "path": "/magic-link-redirect", + "condition": "dhBTmP" + } + ] }, { + "path": "/please-contact-us-via-email", + "title": "Please contact us via email", + "components": [ + { + "name": "ryhwUr", + "options": {}, + "type": "Html", + "content": "

    You are not eligable to use this service, however you can still contact the KLS team via the following email libraryadmin@ukhsa.gov.uk

    " + } + ], + "next": [] + }, + { + + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", + "next": [ + { + "path": "/which-organisation-do-you-work-for-DUPE" + } + ] + + + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [], + "next": [] + }, + { "path": "/about-you", "title": "About you", "components": [ @@ -472,8 +537,8 @@ ] }, { - "path": "/which-organisation-do-you-work-for", - "title": "Which organisation do you work for?", + "path": "/which-organisation-do-you-work-for-DUPE", + "title": "Which organisation do you work for-DUPE?", "components": [ { "name": "wyvXTj", @@ -754,6 +819,32 @@ ], "lists": [ { + "title": "Organisation", + "name": "uIwkHV", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "OHID" + }, + { + "text": "NHS England Public Health", + "value": "NHSE" + }, + { + "text": "Local Authority Public Health", + "value": "LAPH" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, { "title": "Preferred contact method", "name": "slVZMW", "type": "string", @@ -1374,6 +1465,50 @@ ], "sections": [], "conditions": [ + { + "displayName": "Other", + "name": "BOkxIN", + "value": { + "name": "Other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "Not other", + "name": "dhBTmP", + "value": { + "name": "Not other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, { "displayName": "General route", "name": "mZdZMC", @@ -1735,9 +1870,5 @@ "allowSubmissionWithoutPayment": true, "maxAttempts": 3, "showPaymentSkippedWarningPage": false - }, - "declaration": "", - "name": "kls-service-enquiry-v3-pt2-1", - "feedback": { "feedbackForm": true, "url": "" }, - "phaseBanner": { "phase": "beta" } -} + } +} \ No newline at end of file From 48159d1e94e2a970ee8c0e94b1ed49bbf2e6d134 Mon Sep 17 00:00:00 2001 From: Sully Date: Thu, 29 May 2025 13:38:06 +0100 Subject: [PATCH 281/403] Updated KLS config and fix accessibility issues - Update KLS config and fix empty

    causing accessibility issues - Updated KLS config (still work in progress) - Fixed bug where empty

    tags were rendered causing accessibility problems --- runner/src/server/forms/kls-feedback.json | 140 +++ runner/src/server/forms/kls-magic-link.json | 239 +++++ .../{kls-test-form.json => kls-path-1.json} | 906 ++++++++++++++---- .../server/views/partials/summary-detail.html | 4 +- 4 files changed, 1116 insertions(+), 173 deletions(-) create mode 100644 runner/src/server/forms/kls-feedback.json create mode 100644 runner/src/server/forms/kls-magic-link.json rename runner/src/server/forms/{kls-test-form.json => kls-path-1.json} (73%) diff --git a/runner/src/server/forms/kls-feedback.json b/runner/src/server/forms/kls-feedback.json new file mode 100644 index 0000000000..383916c012 --- /dev/null +++ b/runner/src/server/forms/kls-feedback.json @@ -0,0 +1,140 @@ +{ + "metadata": {}, + "startPage": "/start", + "name": "Report an outbreak", + "skipSummary": true, + "pages": [ + { + "path": "/start", + "title": "Give feedback on Knowledge and Library Services", + "components": [ + { + "name": "Feedback", + "options": { + "customValidationMessages": { + "any.required": "Select how you would describe Knowledge and Library Services" + } + }, + "type": "CheckboxesField", + "title": "How would you describe Knowledge and Library Services?", + "hint": "Select all that apply", + "list": "FeedbackOptions" + }, + { + "name": "OtherFeedbackTextBox", + "options": { + "customValidationMessages": { + "string.empty": "Enter your feedback about any difficulties or highlights you experienced, and how we could improve the service", + "string.max": "Your feedback about any difficulties or highlights you experienced, and how we could improve the service, must be 2000 characters or less" + } + }, + "type": "MultilineTextField", + "schema": { + "maxlength": 2000 + }, + "title": "Tell us about any difficulties or highlights you experienced, and how we could improve the service.", + "hint": "Do not include any personal information here (What should we add here Jahdiel/Colin/Team...)." + }, + { + "name": "FeedbackPara", + "options": {}, + "type": "Para", + "content": "
    We would like to discuss your experience or test new features with you.

    Provide your email address if we can contact you for research. We will store your email address as explained in our UKHSA privacy notice (opens in a new tab)

    " + }, + { + "name": "FeedbackEmailAddress", + "options": { + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "title": "Email address for a researcher to contact you", + "type": "EmailAddressField" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "feedback-options", + "name": "FeedbackOptions", + "type": "string", + "items": [ + { + "text": "Useful resource", + "value": "Useful resource" + }, + { + "text": "Easy to understand", + "value": "Easy to understand" + }, + { + "text": "Easy to complete", + "value": "Easy to complete" + }, + { + "text": "Quick to complete", + "value": "Quick to complete" + }, + { + "text": "Some questions were unclear", + "value": "Some questions were unclear" + }, + { + "text": "Not detailed enough", + "value": "Not detailed enough" + }, + { + "text": "Too detailed", + "value": "Too detailed" + }, + { + "text": "Too time consuming", + "value": "Too time consuming" + }, + { + "text": "Other (specify below)", + "value": "Other (specify below)" + } + ] + } + ], + "outputs": [ + { + "name": "FeedbackForm", + "title": "KLS FeedbackForm", + "type": "webhook", + "outputConfiguration": { + "url": "https://webhook.site/e87402d7-a93e-406c-bf13-ca72f3973bbc", + "allowRetry": true + } + } + ], + "sections": [], + "conditions": [], + "phaseBanner": { + "phase": "beta" + }, + "feedback": { + "feedbackForm": false, + "url": "/kls-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    Thank you for completing this survey

    You can now close this page.

    ", + "hidePanel": true + } + } + } +} diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json new file mode 100644 index 0000000000..0075ca0c0e --- /dev/null +++ b/runner/src/server/forms/kls-magic-link.json @@ -0,0 +1,239 @@ +{ + "startPage": "/start", + "skipSummary": true, + "retryTimeoutSeconds": 300, + "analytics": { + "matomoId": "11", + "matomoUrl": "https://ukhsakls.matomo.cloud" + }, + "magicLinkConfig": "kls-magic-link", + "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk"], + "invalidDomainRedirect": "/kls-magic-link/your-email-is-not-on-our-approved-list", + "serviceName": "Knowledge and Library Services", + "fullStartPage": "/kls-path-1/start", + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController", + "unauthenticated": true + }, + { + "title": "What is your email address?", + "path": "/email", + "unauthenticated": true, + "continueButtonText": "Continue", + "showContinueButton": true, + "backLinkFallback": "/kls-path-1/which-organisation-do-you-work-for", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.
    ", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Email address", + "name": "email", + "options": { + "exposeToContext": true, + "customValidationMessages": { + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + } + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice.", + "schema": {} + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "unauthenticated": true, + "backLinkFallback": "/start", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", + "schema": {} + } + ] + }, + { + "backLinkFallback": "/kls-magic-link", + "path": "/your-email-is-not-on-our-approved-list", + "title": "Your email is not on our approved list", + "components": [ + { + "name": "GVrjNV", + "options": {}, + "type": "Para", + "content": " The email you provided does not match our approved email criteria. We only accept emails from goverment orgainsation limited to UKHSA, OHID, Local Authorities and the NHS (nhs.uk and nhs.net).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk ", + "schema": {} + } + ] + + }, + + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "unauthenticated": true, + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    ", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "path": "/email-confirmed", + "title": "Email confirmed", + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "type": "Para", + "content": "You have successfully confirmed your email address. You can continue to REPLACE ME.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "phaseBanner": { + "phase": "beta" + }, + "metadata": {}, + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "CareOBRA MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "klsdevapikeys-c3c1543d-5025-4560-9766-46f5827a6811-f5d1bc8f-803e-4701-a6fe-840e1209fde8", + "templateId": "7b61b152-8648-4e5b-af0c-81f7c3889bb2", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "hmacnkeyyyyyys" + } + } + ], + "jwtKey": "sdasdsadsasdasasdasdsdsdsdas", + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, + "version": 2, + "conditions": [] +} diff --git a/runner/src/server/forms/kls-test-form.json b/runner/src/server/forms/kls-path-1.json similarity index 73% rename from runner/src/server/forms/kls-test-form.json rename to runner/src/server/forms/kls-path-1.json index 8f731e192e..d3ec9b7408 100644 --- a/runner/src/server/forms/kls-test-form.json +++ b/runner/src/server/forms/kls-path-1.json @@ -1,21 +1,76 @@ { "metadata": {}, - "startPage": "/thank-you-for-verifying-your-email", + "startPage": "/start", + "fullStartPage": "/kls-path-1/start", + "serviceName": "Knowledge and Library Services", + "analytics": { + "matomoUrl": "https://ukhsakls.matomo.cloud", + "matomoId": "11" + }, + "webhookHmacSharedKey": "SomeRandomHMACKey", + "magicLinkConfig": "kls-magic-link", "pages": [ { - "title": "Thank you for verifying your email", - "path": "/thank-you-for-verifying-your-email", + "title": "Contact the Knowledge and Library Services team", + "path": "/start", + "components": [], + "next": [ + { + "path": "/which-organisation-do-you-work-for" + } + ], + "controller": "./pages/start.js" + }, + { + "path": "/which-organisation-do-you-work-for", + "title": "Which organisation do you work for?", "components": [ { - "name": "YrUDYI", + "name": "ZpmVWP", "options": {}, - "type": "Para", - "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the KLS team deal with your enquiry promptly and accurately. ", - "schema": {} + "type": "RadiosField", + "title": "Organisation", + "hint": "The KLS service is available to staff from: UK Health Security Agency, Office for Health Improvement and Disparities, NHS England Public Health, and Local Authority Public Health. \n\nIf you do not belong to one of these organisations you can still contact the KLS team by selecting the 'Other' option to find the team's email address.", + "list": "uIwkHV", + "schema": {}, + "values": { + "type": "listRef" + } } ], - "next": [{ "path": "/which-organisation-do-you-work-for" }], - "controller": "./pages/start.js" + "next": [ + { + "path": "/please-contact-us-via-email", + "condition": "BOkxIN" + }, + { + "path": "/magic-link-redirect", + "condition": "dhBTmP" + } + ] + }, + { + "path": "/please-contact-us-via-email", + "title": "Please contact us via email", + "components": [ + { + "name": "ryhwUr", + "options": {}, + "type": "Html", + "content": "

    You are not eligable to use this service, however you can still contact the KLS team via the following email libraries@kls.ukhsa.gov.uk

    " + } + ], + "next": [] + }, + { + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", + "next": [ + { + "path": "/which-organisation-do-you-work-for-DUPE" + } + ] }, { "path": "/about-you", @@ -37,27 +92,41 @@ }, { "name": "RpctHr", - "options": { "required": true }, + "options": { + "required": true + }, "type": "TextField", "title": "Job title", "schema": {} }, { "name": "afZPpL", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your email address", + "any.only": "Enter your email address", + "string.empty": "Enter your email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { "name": "ZjyQtC", - "options": { "required": false }, + "options": { + "required": false + }, "type": "EmailAddressField", "title": "Should anyone else be included in emails about this enquiry?", "schema": {} } ], - "next": [{ "path": "/check-your-details-before-submitting-your-enquiry" }] + "next": [ + { + "path": "/summary" + } + ] }, { "path": "/type-of-enquiry", @@ -73,11 +142,15 @@ }, { "name": "tUKBgj", - "options": { "exposeToContext": false }, + "options": { + "exposeToContext": false + }, "type": "RadiosField", "title": "Which option best matches your enquiry?", "list": "eKfmVf", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {} } ], @@ -86,9 +159,18 @@ "path": "/about-your-current-awareness-alerts-query", "condition": "OchNDo" }, - { "path": "/how-can-we-help", "condition": "mZdZMC" }, - { "path": "/evidence-briefing-information", "condition": "eiTtgM" }, - { "path": "/about-your-enquiry", "condition": "XvwdpX" } + { + "path": "/how-can-we-help", + "condition": "mZdZMC" + }, + { + "path": "/evidence-briefing-information", + "condition": "eiTtgM" + }, + { + "path": "/about-your-enquiry", + "condition": "XvwdpX" + } ] }, { @@ -97,7 +179,9 @@ "components": [ { "name": "YIrnKT", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "If you need to tell us more, please do so in this text box", "schema": {} @@ -112,7 +196,9 @@ }, { "name": "aazUpS", - "options": { "required": false }, + "options": { + "required": false + }, "type": "FileUploadField", "title": "Please attach any supporting information, for example a protocol or list of references.", "schema": {}, @@ -120,18 +206,19 @@ } ], "next": [ - { "path": "/about-you" }, - { "path": "/about-you-GXSFdb", "condition": "EgJCgx" }, - { "path": "/about-you-dHykmu", "condition": "IbKdRK" } + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } ] }, - { - "path": "/check-your-details-before-submitting-your-enquiry", - "title": "Check your details before submitting your enquiry", - "components": [], - "next": [], - "controller": "./pages/summary.js" - }, { "path": "/about-your-current-awareness-alerts-query", "title": "About your current awareness alerts query", @@ -151,9 +238,17 @@ } ], "next": [ - { "path": "/about-you" }, - { "path": "/about-you-GXSFdb", "condition": "EgJCgx" }, - { "path": "/about-you-dHykmu", "condition": "IbKdRK" } + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } ] }, { @@ -176,7 +271,9 @@ }, { "name": "bhBuDQ", - "options": { "required": true }, + "options": { + "required": true + }, "type": "MultilineTextField", "title": "Explain any relevant concepts", "schema": {}, @@ -184,7 +281,9 @@ }, { "name": "uBPfQS", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "Give an example of a paper that should be included in the output", "schema": {}, @@ -197,19 +296,25 @@ "title": "Publication date range", "list": "OGYVAD", "hint": "Indicate the time period from which evidence should be sourced", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {} }, { "name": "MArgxL", - "options": { "required": false }, + "options": { + "required": false + }, "type": "TextField", "title": "If you selected 'other' above, please give details", "schema": {} }, { "name": "etcpxo", - "options": {}, + "options": { + "string.empty": "Enter your email address" + }, "type": "TextField", "title": "UK only or international?", "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", @@ -217,7 +322,13 @@ }, { "name": "hQXIgL", - "options": { "maxDaysInPast": "0" }, + "options": { + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date can’t be before today - Ask colin/Jahdiel to look at this" + } + }, "type": "DatePartsField", "title": "Desired completion date", "hint": "The KLS team will be in touch to discuss the feasibility of this date", @@ -225,23 +336,38 @@ }, { "name": "RCdnGJ", - "options": { "required": false, "optionalText": true }, + "options": { + "required": false, + "optionalText": true + }, "type": "CheckboxesField", "title": "Can we share the results with other public health professionals?", "list": "IQAoJu" }, { "name": "oNDRUt", - "options": { "required": false, "optionalText": true }, + "options": { + "required": false, + "optionalText": true + }, "type": "CheckboxesField", "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", "list": "IQAoJu" } ], "next": [ - { "path": "/systematic-review-questions", "condition": "dCqSKz" }, - { "path": "/literature-search-questions", "condition": "fNTYcH" }, - { "path": "/evidence-briefing-questions", "condition": "eiTtgM" } + { + "path": "/systematic-review-questions", + "condition": "dCqSKz" + }, + { + "path": "/literature-search-questions", + "condition": "fNTYcH" + }, + { + "path": "/evidence-briefing-questions", + "condition": "eiTtgM" + } ] }, { @@ -266,31 +392,43 @@ }, { "name": "WNVZzn", - "options": { "required": true }, + "options": { + "required": true + }, "type": "SelectField", "title": "What will you primarily use the results of this search for?", "list": "PxpncX", "schema": {}, "hint": "If more than one option apply, please select the most relevant", - "values": { "type": "listRef" } + "values": { + "type": "listRef" + } }, { "name": "nPBXNt", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "If you selected 'other' above, please give details", "schema": {} }, { "name": "qwQlWP", - "options": { "required": true }, + "options": { + "required": true + }, "type": "CheckboxesField", "title": "What is your preferred results format?", "list": "LgzPJy", "schema": {} } ], - "next": [{ "path": "/additional-information" }] + "next": [ + { + "path": "/additional-information" + } + ] }, { "path": "/systematic-review-questions", @@ -311,44 +449,60 @@ "title": "What type of review are you doing?", "list": "cZlqVP", "hint": "", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {} }, { "name": "IdTRkf", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "If you selected 'other' above, please give details", "schema": {} }, { "name": "byRMpb", - "options": { "required": true }, + "options": { + "required": true + }, "type": "SelectField", "title": "What is the reason for conducting this review?", "list": "tOKEMX", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {} }, { "name": "mBSuvI", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "If you selected 'other' above, please give details", "schema": {} }, { "name": "diftRU", - "options": { "required": true }, + "options": { + "required": true + }, "type": "SelectField", "title": "Where do you intend to publish your review?", "list": "Zappeq", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {} }, { "name": "NeCvDK", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "If you answered 'other', please give details", "schema": {} @@ -362,15 +516,23 @@ }, { "name": "dmgVPY", - "options": { "required": true }, + "options": { + "required": true + }, "type": "YesNoField", "title": "Have you written a protocol?", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {}, "hint": "If so, please use the file upload facility on the next page to share it with the KLS team" } ], - "next": [{ "path": "/additional-information" }] + "next": [ + { + "path": "/additional-information" + } + ] }, { "path": "/evidence-briefing-questions", @@ -393,48 +555,64 @@ }, { "name": "rcGqoK", - "options": { "required": false }, + "options": { + "required": false + }, "type": "TextField", "title": "If you answered 'Other' above, please give details", "schema": {} }, { "name": "TNXqpA", - "options": { "required": true }, + "options": { + "required": true + }, "type": "MultilineTextField", "title": "What are your inclusion criteria for population?", "schema": {} }, { "name": "KXXNzf", - "options": { "required": true }, + "options": { + "required": true + }, "type": "MultilineTextField", "title": "What are your inclusion criteria for intervention or exposure?", "schema": {} }, { "name": "GjCFLx", - "options": { "required": true }, + "options": { + "required": true + }, "type": "MultilineTextField", "title": "What are your inclusion criteria for setting/location?", "schema": {} }, { "name": "MgKlsM", - "options": { "required": true }, + "options": { + "required": true + }, "type": "MultilineTextField", "title": "What are your inclusion criteria for outcomes?", "schema": {} }, { "name": "iYKvoN", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "Should anything be excluded?", "schema": {} } ], - "next": [{ "path": "/additional-information" }] + "next": [ + { + "path": "/additional-information" + } + ] }, { "path": "/how-can-we-help", @@ -458,7 +636,9 @@ }, { "name": "FIvjTg", - "options": { "required": false }, + "options": { + "required": false + }, "type": "FileUploadField", "title": "Upload a file", "hint": "To support the KLS team in dealing with your query, you may upload a file here.", @@ -466,14 +646,22 @@ } ], "next": [ - { "path": "/about-you" }, - { "path": "/about-you-GXSFdb", "condition": "EgJCgx" }, - { "path": "/about-you-dHykmu", "condition": "IbKdRK" } + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } ] }, { - "path": "/which-organisation-do-you-work-for", - "title": "Which organisation do you work for?", + "path": "/which-organisation-do-you-work-for-DUPE", + "title": "Which organisation do you work for-DUPE?", "components": [ { "name": "wyvXTj", @@ -483,13 +671,23 @@ "hint": "", "list": "ULmwPo", "schema": {}, - "values": { "type": "listRef" } + "values": { + "type": "listRef" + } } ], "next": [ - { "path": "/type-of-enquiry" }, - { "path": "/how-can-we-help", "condition": "CRsuUh" }, - { "path": "/type-of-enquiry-JpEYIe", "condition": "IbKdRK" } + { + "path": "/type-of-enquiry" + }, + { + "path": "/how-can-we-help", + "condition": "CRsuUh" + }, + { + "path": "/type-of-enquiry-JpEYIe", + "condition": "IbKdRK" + } ] }, { @@ -510,17 +708,24 @@ "type": "RadiosField", "list": "AUYYCW", "title": "Which option best matches your enquiry?", - "values": { "type": "listRef" }, + "values": { + "type": "listRef" + }, "schema": {} } ], "next": [ - { "path": "/how-can-we-help", "condition": "lsHzLP" }, + { + "path": "/how-can-we-help", + "condition": "lsHzLP" + }, { "path": "/about-your-current-awareness-alerts-query", "condition": "MQeZyE" }, - { "path": "/about-your-enquiry-RPOaaR" } + { + "path": "/about-your-enquiry-RPOaaR" + } ] }, { @@ -551,7 +756,9 @@ }, { "name": "Ercwfj", - "options": { "required": false }, + "options": { + "required": false + }, "type": "MultilineTextField", "title": "Give an example of a paper that should be included in the output", "hint": "Enter a relevant publication or key author you would expect to be included", @@ -568,7 +775,9 @@ }, { "name": "zVphJY", - "options": { "required": false }, + "options": { + "required": false + }, "type": "TextField", "title": "If you selected 'other' above, please give details", "schema": {} @@ -583,7 +792,10 @@ }, { "name": "kgNqhg", - "options": { "maxDaysInFuture": "", "maxDaysInPast": "0" }, + "options": { + "maxDaysInFuture": "", + "maxDaysInPast": "0" + }, "type": "DatePartsField", "hint": "The KLS team will be in touch to discuss the feasibility of this date", "title": "Desired completion date", @@ -591,20 +803,30 @@ }, { "name": "GxImes", - "options": { "required": false, "optionalText": true }, + "options": { + "required": false, + "optionalText": true + }, "type": "CheckboxesField", "title": "Can we share the results with other public health professionals?", "list": "IQAoJu" }, { "name": "DdsEuf", - "options": { "required": false, "optionalText": true }, + "options": { + "required": false, + "optionalText": true + }, "type": "CheckboxesField", "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", "list": "IQAoJu" } ], - "next": [{ "path": "/literature-search-questions" }] + "next": [ + { + "path": "/literature-search-questions" + } + ] }, { "path": "/evidence-briefing-information", @@ -647,7 +869,11 @@ "schema": {} } ], - "next": [{ "path": "/about-your-enquiry" }] + "next": [ + { + "path": "/about-your-enquiry" + } + ] }, { "path": "/about-you-GXSFdb", @@ -661,56 +887,94 @@ }, { "name": "dagbPo", - "options": {}, + "options": { + "required": true + }, "type": "TextField", "title": "Full name" }, { "name": "uksayz", - "options": { "required": true }, + "options": { + "required": true + }, "type": "TextField", "title": "Job title" }, { "name": "nmlFzr", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your group", + "any.only": "Enter your group" + } + }, "type": "SelectField", "hint": "Tell us which work group you belong to", "title": "Group", "list": "sYQQmN", - "values": { "type": "listRef" } + "values": { + "type": "listRef" + } }, { "name": "oUmeSI", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your directorate", + "any.only": "Enter your directorate" + } + }, "type": "SelectField", "hint": "Tell us which directorate you belong to", "title": "Directorate", - "list": "pTYDbB" + "list": "pTYDbB", + "schema": { + "required": true + } }, { "name": "EkwRix", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your location", + "any.only": "Enter your location" + } + }, "type": "SelectField", "hint": "Tell us your work location", "title": "Location", "list": "wrhJNi", - "values": { "type": "listRef" } + "values": { + "type": "listRef" + } }, { "name": "SPKrpE", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your email address", + "any.only": "Enter your email address", + "string.empty": "Enter your email address" + } + }, "type": "EmailAddressField", "title": "Email address" }, { "name": "rqzRcc", - "options": { "required": false }, + "options": { + "required": false + }, "type": "EmailAddressField", "title": "Should anyone else be included in emails about this enquiry?" } ], - "next": [{ "path": "/check-your-details-before-submitting-your-enquiry" }] + "next": [ + { + "path": "/summary" + } + ] }, { "path": "/about-you-dHykmu", @@ -730,36 +994,95 @@ }, { "name": "PIjqqt", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your email address", + "any.only": "Enter your email address", + "string.empty": "Enter your email address" + } + }, "type": "EmailAddressField", "title": "Email address" }, { "name": "YeDsms", - "options": { "required": false }, + "options": { + "required": false + }, "type": "EmailAddressField", "title": "Should anyone else be included in emails about this enquiry?" }, { "name": "oCVslj", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter your location", + "any.only": "Enter your location" + } + }, "type": "SelectField", "title": "Location", "list": "iTBoCy", - "values": { "type": "listRef" } + "values": { + "type": "listRef" + } } ], - "next": [{ "path": "/check-your-details-before-submitting-your-enquiry" }] + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" } ], "lists": [ + { + "title": "Organisation", + "name": "uIwkHV", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "OHID" + }, + { + "text": "NHS England Public Health", + "value": "NHSE" + }, + { + "text": "Local Authority Public Health", + "value": "LAPH" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, { "title": "Preferred contact method", "name": "slVZMW", "type": "string", "items": [ - { "text": "email", "value": "email" }, - { "text": "telephone", "value": "telephone" } + { + "text": "email", + "value": "email" + }, + { + "text": "telephone", + "value": "telephone" + } ] }, { @@ -804,7 +1127,11 @@ "text": "CSO: Radiation", "value": "CSO: Radiation" }, - { "description": "", "text": "Chemicals", "value": "Chemicals" }, + { + "description": "", + "text": "Chemicals", + "value": "Chemicals" + }, { "value": "Climate and Environmental Hazards", "description": "", @@ -910,7 +1237,10 @@ "description": "", "text": "COO: Strategy and Policy" }, - { "value": "COO: Transformation", "text": "COO: Transformation" } + { + "value": "COO: Transformation", + "text": "COO: Transformation" + } ] }, { @@ -918,10 +1248,25 @@ "name": "wrhJNi", "type": "string", "items": [ - { "description": "", "text": "Chilton", "value": "Chilton" }, - { "description": "", "text": "Colindale", "value": "Colindale" }, - { "description": "", "text": "Porton", "value": "Porton" }, - { "text": "Other", "value": "Other" } + { + "description": "", + "text": "Chilton", + "value": "Chilton" + }, + { + "description": "", + "text": "Colindale", + "value": "Colindale" + }, + { + "description": "", + "text": "Porton", + "value": "Porton" + }, + { + "text": "Other", + "value": "Other" + } ] }, { @@ -929,9 +1274,18 @@ "name": "eKfmVf", "type": "string", "items": [ - { "text": "Literature search", "value": "Literature search" }, - { "text": "Systematic review", "value": "Systematic review" }, - { "text": "Evidence briefing", "value": "Evidence briefing" }, + { + "text": "Literature search", + "value": "Literature search" + }, + { + "text": "Systematic review", + "value": "Systematic review" + }, + { + "text": "Evidence briefing", + "value": "Evidence briefing" + }, { "text": "Current awareness alerts", "value": "Current awareness alerts" @@ -948,9 +1302,21 @@ "name": "LgzPJy", "type": "string", "items": [ - { "description": "", "text": "Endnote", "value": "Endnote" }, - { "description": "", "text": "Word", "value": "Word" }, - { "description": "", "text": "Excel", "value": "Excel" }, + { + "description": "", + "text": "Endnote", + "value": "Endnote" + }, + { + "description": "", + "text": "Word", + "value": "Word" + }, + { + "description": "", + "text": "Excel", + "value": "Excel" + }, { "description": "", "text": "RIS (for reference management software)", @@ -1072,13 +1438,20 @@ "text": "Evidence summary", "value": "Evidence summary" }, - { "description": "", "text": "Guidelines", "value": "Guidelines" }, + { + "description": "", + "text": "Guidelines", + "value": "Guidelines" + }, { "description": "", "text": "Keeping up to date", "value": "Keeping up to date" }, - { "text": "Other", "value": "Other" }, + { + "text": "Other", + "value": "Other" + }, { "description": "", "text": "Policy and strategy development", @@ -1121,13 +1494,19 @@ "text": "Mapping review", "value": "Mapping review" }, - { "text": "Umbrella review", "value": "Umbrella review" }, + { + "text": "Umbrella review", + "value": "Umbrella review" + }, { "description": "", "text": "Unsure/to be confirmed", "value": "Unsure/to be confirmed" }, - { "text": "Other", "value": "Other" } + { + "text": "Other", + "value": "Other" + } ] }, { @@ -1135,9 +1514,18 @@ "name": "wYJotW", "type": "string", "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" }, - { "text": "Unsure", "value": "Unsure" } + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + }, + { + "text": "Unsure", + "value": "Unsure" + } ] }, { @@ -1145,14 +1533,24 @@ "name": "Zappeq", "type": "string", "items": [ - { "text": "Peer reviewed journal", "value": "Journal" }, - { "description": "", "text": "GOV.UK", "value": "GOV.UK" }, + { + "text": "Peer reviewed journal", + "value": "Journal" + }, + { + "description": "", + "text": "GOV.UK", + "value": "GOV.UK" + }, { "description": "", "text": "Internal only", "value": "Internal only" }, - { "text": "Other", "value": "Other" } + { + "text": "Other", + "value": "Other" + } ] }, { @@ -1160,9 +1558,18 @@ "name": "rZyXKL", "type": "string", "items": [ - { "text": "English language only", "value": "English language only" }, - { "text": "English and other", "value": "English and other" }, - { "text": "Other", "value": "Other" } + { + "text": "English language only", + "value": "English language only" + }, + { + "text": "English and other", + "value": "English and other" + }, + { + "text": "Other", + "value": "Other" + } ] }, { @@ -1206,13 +1613,22 @@ "name": "ULmwPo", "type": "string", "items": [ - { "text": "UK Health Security Agency", "value": "UKHSA" }, + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, { "text": "Office for Health Improvement and Disparities", "value": "OHID" }, - { "text": "NHS England Public Health", "value": "NHSE" }, - { "text": "Local Authority Public Health", "value": "LAPH" } + { + "text": "NHS England Public Health", + "value": "NHSE" + }, + { + "text": "Local Authority Public Health", + "value": "LAPH" + } ] }, { @@ -1220,7 +1636,11 @@ "name": "tOKEMX", "type": "string", "items": [ - { "text": "Evidence gap", "description": "", "value": "Evidence gap" }, + { + "text": "Evidence gap", + "description": "", + "value": "Evidence gap" + }, { "description": "", "text": "Updating previous evidence", @@ -1236,7 +1656,10 @@ "text": "UKHSA priority topic", "value": "UKHSA priority topic" }, - { "text": "Other", "value": "Other" } + { + "text": "Other", + "value": "Other" + } ] }, { @@ -1244,10 +1667,22 @@ "name": "OGYVAD", "type": "string", "items": [ - { "text": "last 3 years", "value": "3 years" }, - { "text": "last 5 years", "value": "5 years" }, - { "text": "Not applicable", "value": "Not applicable" }, - { "text": "Other", "value": "Other" } + { + "text": "last 3 years", + "value": "3 years" + }, + { + "text": "last 5 years", + "value": "5 years" + }, + { + "text": "Not applicable", + "value": "Not applicable" + }, + { + "text": "Other", + "value": "Other" + } ] }, { @@ -1275,7 +1710,10 @@ "text": "Incident response", "value": "Incident response" }, - { "text": "Other", "value": "Other" } + { + "text": "Other", + "value": "Other" + } ] }, { @@ -1283,7 +1721,10 @@ "name": "AUYYCW", "type": "string", "items": [ - { "text": "Literature search", "value": "Literature search" }, + { + "text": "Literature search", + "value": "Literature search" + }, { "text": "Current awareness alerts", "value": "Current awareness alerts" @@ -1312,7 +1753,10 @@ "text": "Contribution to an organisational priority or strategic objective", "value": "Contribution to an organisational priority or strategic objective" }, - { "text": "An incident response", "value": "An incident response" } + { + "text": "An incident response", + "value": "An incident response" + } ] }, { @@ -1320,26 +1764,60 @@ "name": "iTBoCy", "type": "string", "items": [ - { "description": "", "text": "North East", "value": "North East" }, - { "description": "", "text": "North West", "value": "North West" }, - { "text": "Yorkshire and Humber", "value": "Yorkshire and Humber" }, - { "text": "East Midlands", "value": "East Midlands" }, - { "text": "West Midlands", "value": "West Midlands" }, + { + "description": "", + "text": "North East", + "value": "North East" + }, + { + "description": "", + "text": "North West", + "value": "North West" + }, + { + "text": "Yorkshire and Humber", + "value": "Yorkshire and Humber" + }, + { + "text": "East Midlands", + "value": "East Midlands" + }, + { + "text": "West Midlands", + "value": "West Midlands" + }, { "description": "", "text": "East of England", "value": "East of England" }, - { "description": "", "text": "London", "value": "London" }, - { "description": "", "text": "South East", "value": "South East" }, - { "description": "", "text": "South West", "value": "South West" } + { + "description": "", + "text": "London", + "value": "London" + }, + { + "description": "", + "text": "South East", + "value": "South East" + }, + { + "description": "", + "text": "South West", + "value": "South West" + } ] }, { "title": "Yes", "name": "IQAoJu", "type": "string", - "items": [{ "text": "Agree", "value": "Agree" }] + "items": [ + { + "text": "Agree", + "value": "Agree" + } + ] }, { "title": "Current awareness alerts options", @@ -1354,26 +1832,91 @@ "text": "Antimicrobial Resistance", "value": "Antimicrobial Resistance" }, - { "text": "COVID-19 Re-infection", "value": "COVID-19 Re-infection" }, + { + "text": "COVID-19 Re-infection", + "value": "COVID-19 Re-infection" + }, { "text": "Global Public Health Security", "value": "Global Public Health Security" }, - { "text": "Healthy Ageing", "value": "Healthy Ageing" }, - { "text": "Infection", "value": "Infection" }, - { "text": "Long-COVID", "value": "Long-COVID" }, - { "text": "Mental Health", "value": "Mental Health" }, - { "text": "Musculoskeletal Health", "value": "Musculoskeletal Health" }, + { + "text": "Healthy Ageing", + "value": "Healthy Ageing" + }, + { + "text": "Infection", + "value": "Infection" + }, + { + "text": "Long-COVID", + "value": "Long-COVID" + }, + { + "text": "Mental Health", + "value": "Mental Health" + }, + { + "text": "Musculoskeletal Health", + "value": "Musculoskeletal Health" + }, { "text": "Nutrition, Diet & Obesity", "value": "Nutrition, Diet & Obesity" }, - { "text": "Vector Borne Disease", "value": "Vector Borne Disease" } + { + "text": "Vector Borne Disease", + "value": "Vector Borne Disease" + } ] } ], "sections": [], "conditions": [ + { + "displayName": "Other", + "name": "BOkxIN", + "value": { + "name": "Other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "Not other", + "name": "dhBTmP", + "value": { + "name": "Not other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, { "displayName": "General route", "name": "mZdZMC", @@ -1533,7 +2076,11 @@ "display": "Which organisation do you work for?" }, "operator": "is", - "value": { "type": "Value", "value": "LAPH", "display": "LAPH" } + "value": { + "type": "Value", + "value": "LAPH", + "display": "LAPH" + } } ] } @@ -1551,7 +2098,11 @@ "display": "Which organisation do you work for?" }, "operator": "is", - "value": { "type": "Value", "value": "Other", "display": "Other" } + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } } ] } @@ -1721,23 +2272,36 @@ "display": "Which organisation do you work for?" }, "operator": "is", - "value": { "type": "Value", "value": "UKHSA", "display": "UKHSA" } + "value": { + "type": "Value", + "value": "UKHSA", + "display": "UKHSA" + } } ] } } ], "fees": [], - "outputs": [], + "outputs": [ + { + "name": "eBBQeD", + "title": "test-output", + "type": "webhook", + "outputConfiguration": { + "url": "https://webhook.site/e87402d7-a93e-406c-bf13-ca72f3973bbc", + "allowRetry": true + } + } + ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false + "phaseBanner": { + "phase": "beta" + }, + "feedback": { + "feedbackForm": true, + "url": "/kls-feedback" }, - "declaration": "", - "name": "kls-service-enquiry-v3-pt2-1", - "feedback": { "feedbackForm": true, "url": "" }, - "phaseBanner": { "phase": "beta" } -} + "jwtKey": "23029328asdasd3923208902de902" +} \ No newline at end of file diff --git a/runner/src/server/views/partials/summary-detail.html b/runner/src/server/views/partials/summary-detail.html index 823480455e..c380b514ec 100644 --- a/runner/src/server/views/partials/summary-detail.html +++ b/runner/src/server/views/partials/summary-detail.html @@ -2,8 +2,8 @@ {% macro summaryDetail(data) %} {% set isRepeatableSection = (data.items[0] | isArray) %} - {% if not isRepeatableSection %} -

    {{data.title}}

    + {% if not isRepeatableSection and data.title %} +

    {{ data.title }}

    {% endif %}
    {% for item in data.items %} From d2a562c73efd11d7357be944a2fd65f06ecc4a50 Mon Sep 17 00:00:00 2001 From: Sully Date: Tue, 3 Jun 2025 15:43:44 +0100 Subject: [PATCH 282/403] Updated KLS-Config-v2 and generalised paths for expired magic links - Reduced bugs in KLS Config - Magic links are now slightly more generalised per magic-config --- runner/src/server/forms/kls-magic-link.json | 10 +-- runner/src/server/forms/kls-path-1.json | 87 +++++++++---------- .../pageControllers/MagicLinkController.ts | 13 ++- 3 files changed, 56 insertions(+), 54 deletions(-) diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index 66d0bc595e..1321d4d171 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -101,7 +101,7 @@ "name": "SentAnotherEmailButton", "options": {}, "type": "Para", - "content": "Send a new email", + "content": "Send a new email", "schema": {} } ] @@ -141,7 +141,7 @@ "options": {}, "type": "Para", "title": "If you've not received an email", - "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", "schema": {} } ], @@ -180,7 +180,7 @@ "name": "IncorrectEmail", "options": {}, "type": "Para", - "content": "The email you used does not match the email associated with this link.

    Request a new link", + "content": "The email you used does not match the email associated with this link.

    Request a new link", "schema": {} } ] @@ -192,7 +192,7 @@ { "type": "Para", "title": "This link has expired", - "content": "Request a new link", + "content": "Request a new link", "name": "blarGGH", "options": {}, "schema": {} @@ -204,7 +204,7 @@ "confirmationPage": { "customText": { "hidePanel": true, - "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" } } }, diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index d3ec9b7408..5659323341 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -103,9 +103,9 @@ "name": "afZPpL", "options": { "customValidationMessages": { - "any.required": "Enter your email address", - "any.only": "Enter your email address", - "string.empty": "Enter your email address" + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address" } }, "type": "EmailAddressField", @@ -313,10 +313,15 @@ { "name": "etcpxo", "options": { - "string.empty": "Enter your email address" + "customValidationMessages": { + "any.required": "Enter UK only or international", + "any.only": "Enter UK only or international", + "string.empty": "Enter UK only or international" + } }, "type": "TextField", "title": "UK only or international?", + "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", "schema": {} }, @@ -784,7 +789,13 @@ }, { "name": "UjGoiE", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter UK only or international", + "any.only": "Enter UK only or international", + "string.empty": "Enter UK only or international" + } + }, "type": "TextField", "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", "title": "UK only or international?", @@ -905,8 +916,9 @@ "name": "nmlFzr", "options": { "customValidationMessages": { - "any.required": "Enter your group", - "any.only": "Enter your group" + "any.required": "Enter group", + "any.only": "Enter group", + "string.empty": "Enter group" } }, "type": "SelectField", @@ -921,8 +933,10 @@ "name": "oUmeSI", "options": { "customValidationMessages": { - "any.required": "Enter your directorate", - "any.only": "Enter your directorate" + "any.required": "Enter directorate", + "any.only": "Enter directorate", + "string.empty": "Enter directorate" + } }, "type": "SelectField", @@ -937,8 +951,9 @@ "name": "EkwRix", "options": { "customValidationMessages": { - "any.required": "Enter your location", - "any.only": "Enter your location" + "any.required": "Enter location", + "any.only": "Enter location", + "string.empty": "Enter location" } }, "type": "SelectField", @@ -953,9 +968,9 @@ "name": "SPKrpE", "options": { "customValidationMessages": { - "any.required": "Enter your email address", - "any.only": "Enter your email address", - "string.empty": "Enter your email address" + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address" } }, "type": "EmailAddressField", @@ -996,9 +1011,9 @@ "name": "PIjqqt", "options": { "customValidationMessages": { - "any.required": "Enter your email address", - "any.only": "Enter your email address", - "string.empty": "Enter your email address" + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address" } }, "type": "EmailAddressField", @@ -1016,8 +1031,10 @@ "name": "oCVslj", "options": { "customValidationMessages": { - "any.required": "Enter your location", - "any.only": "Enter your location" + "any.required": "Enter location", + "any.only": "Enter location", + "string.empty": "Enter location" + } }, "type": "SelectField", @@ -1124,18 +1141,8 @@ }, { "description": "", - "text": "CSO: Radiation", - "value": "CSO: Radiation" - }, - { - "description": "", - "text": "Chemicals", - "value": "Chemicals" - }, - { - "value": "Climate and Environmental Hazards", - "description": "", - "text": "Climate and Environmental Hazards" + "text": "CSO: Radiation, Chemicals, Climate and Environmental Hazards", + "value": "CSO: Radiation, Chemicals, Climate and Environmental Hazards" }, { "value": "CSO: Scientific Facilities and Performance", @@ -1148,14 +1155,9 @@ "text": "CSO: Science Strategy and Evidence" }, { - "value": "CMA: Emergency Preparedness", - "description": "", - "text": "CMA: Emergency Preparedness" - }, - { - "value": "Resilience and Response (EPRR) and Response Operations", + "value": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations", "description": "", - "text": "Resilience and Response (EPRR) and Response Operations" + "text": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations" }, { "description": "", @@ -1188,14 +1190,9 @@ "text": "CDO: Analysis and Intelligence Assessment" }, { - "value": "CDO: Data Protection", - "description": "", - "text": "CDO: Data Protection" - }, - { - "value": "Security and Technology Services", + "value": "CDO: Data Protection, Security and Technology Services", "description": "", - "text": "Security and Technology Services" + "text": "CDO: Data Protection, Security and Technology Services" }, { "value": "CDO: Digital and Data", diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts index 12cccc215d..ebf0afc6ad 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts @@ -5,6 +5,7 @@ import { HapiRequest, HapiResponseToolkit } from "server/types"; import { validateHmac } from "src/server/utils/hmac"; import Jwt from "@hapi/jwt"; import config from "server/config"; +import { configureEnginePlugin } from "../configureEnginePlugin"; export class MagicLinkController extends PageController { constructor(model, pageDef) { @@ -18,18 +19,22 @@ export class MagicLinkController extends PageController { const requestTime = request.query.request_time; const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + debugger; + const validation = await validateHmac(email, hmac, requestTime, hmacKey); const { cacheService } = request.services([]); const state = await cacheService.getState(request); + //💣 Issue: As the program scales, this will need updating on a per-form basis. + // Otherwise active on one form, will mark them active on all. const isMagicLinkRecordActive = await cacheService.searchForMagicLinkRecord( email ); if (!isMagicLinkRecordActive) { - return h.redirect("/magic-link/expired").code(302); + return h.redirect(`/${this.model.basePath}/expired`).code(302); } await cacheService.deleteMagicLinkRecord(email); @@ -38,11 +43,11 @@ export class MagicLinkController extends PageController { // Handle different invalid token cases switch (validation.reason) { case "expired": - return h.redirect("/magic-link/expired").code(302); + return h.redirect(`/${this.model.basePath}/expired`).code(302); case "invalid_signature": - return h.redirect("/magic-link/incorrect-email").code(302); + return h.redirect(`/${this.model.basePath}/incorrect-email`).code(302); default: - return h.redirect("/magic-link/error").code(302); + return h.redirect(`/${this.model.basePath}/error`).code(302); } } From 4bec8fa191bd82987bc6dde6123cef77df564809 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 6 Jun 2025 15:27:47 +0100 Subject: [PATCH 283/403] Update close-contact-form.json --- runner/src/server/forms/close-contact-form.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index e00c9163ba..912f3874d7 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -3201,7 +3201,7 @@ "title": "Execute API", "type": "webhook", "outputConfiguration": { - "url": "https://a8rafapgvc.execute-api.eu-west-2.amazonaws.com/v1/forms", + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", "allowRetry": true } } From d1af4034c779e126655add076acac072db2490be Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 6 Jun 2025 15:30:09 +0100 Subject: [PATCH 284/403] Update TestForm7.json --- runner/src/server/forms/TestForm7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/TestForm7.json b/runner/src/server/forms/TestForm7.json index 0641380c59..6fe3b99494 100644 --- a/runner/src/server/forms/TestForm7.json +++ b/runner/src/server/forms/TestForm7.json @@ -29,7 +29,7 @@ "title": "Execute API", "type": "webhook", "outputConfiguration": { - "url": "https://xgovform.mancboy.com/test", + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", "allowRetry": true } } From fbf8897a20378ce130cefde2b840f7446b602645 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Mon, 9 Jun 2025 10:41:29 +0100 Subject: [PATCH 285/403] added env variables (#389) --- runner/src/server/forms/kls-path-1.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index 5659323341..a70d671ad6 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -7,7 +7,7 @@ "matomoUrl": "https://ukhsakls.matomo.cloud", "matomoId": "11" }, - "webhookHmacSharedKey": "SomeRandomHMACKey", + "webhookHmacSharedKey": "${KLSkey}", "magicLinkConfig": "kls-magic-link", "pages": [ { @@ -2286,7 +2286,7 @@ "title": "test-output", "type": "webhook", "outputConfiguration": { - "url": "https://webhook.site/e87402d7-a93e-406c-bf13-ca72f3973bbc", + "url": "${KLSwebhook}", "allowRetry": true } } From ab80d49247b8a4beff53070cb423e9a6b78c38d1 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Tue, 10 Jun 2025 14:18:34 +0100 Subject: [PATCH 286/403] V3 version of KLS teams forms (#393) - Minor bug fixes --- runner/src/server/forms/kls-path-1.json | 75 ++++++++++++------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index a70d671ad6..8146b588fa 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -313,15 +313,14 @@ { "name": "etcpxo", "options": { - "customValidationMessages": { + "customValidationMessages": { "any.required": "Enter UK only or international", "any.only": "Enter UK only or international", "string.empty": "Enter UK only or international" - } + } }, "type": "TextField", "title": "UK only or international?", - "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", "schema": {} }, @@ -936,7 +935,6 @@ "any.required": "Enter directorate", "any.only": "Enter directorate", "string.empty": "Enter directorate" - } }, "type": "SelectField", @@ -1034,7 +1032,6 @@ "any.required": "Enter location", "any.only": "Enter location", "string.empty": "Enter location" - } }, "type": "SelectField", @@ -1071,15 +1068,15 @@ }, { "text": "Office for Health Improvement and Disparities", - "value": "OHID" + "value": "Office for Health Improvement and Disparities (OHID)" }, { "text": "NHS England Public Health", - "value": "NHSE" + "value": "NHS England Public Health" }, { "text": "Local Authority Public Health", - "value": "LAPH" + "value": "Local Authority Public Health" }, { "text": "Other", @@ -1110,22 +1107,22 @@ { "description": "", "text": "Chief Scientific Officer (CSO)", - "value": "CSO" + "value": "Chief Scientific Officer (CSO)" }, { "description": "", "text": "Chief Medical Advisor (CMA)", - "value": "CMA" + "value": "Chief Medical Advisor (CMA)" }, { "description": "", "text": "Chief Data Officer (CDO)", - "value": "CDO" + "value": "Chief Data Officer (CDO)" }, { "description": "", "text": "Chief Operating Officer (COO)", - "value": "COO" + "value": "Chief Operating Officer (COO)" } ] }, @@ -1273,19 +1270,19 @@ "items": [ { "text": "Literature search", - "value": "Literature search" + "value": "Literature Searches" }, { "text": "Systematic review", - "value": "Systematic review" + "value": "Systematic Reviews" }, { "text": "Evidence briefing", - "value": "Evidence briefing" + "value": "Evidence Briefings" }, { "text": "Current awareness alerts", - "value": "Current awareness alerts" + "value": "Current Awareness" }, { "text": "General enquiry", @@ -1317,7 +1314,7 @@ { "description": "", "text": "RIS (for reference management software)", - "value": "RIS" + "value": "RIS (for reference management software)" } ] }, @@ -1411,12 +1408,12 @@ { "description": "It usually takes the KLS team at least 1 working week to complete this work.", "text": "Option 1. A list of relevant literature search results in either chronological or author order.", - "value": "Option 1. A list of relevant literature search results in either chronological or author order" + "value": "Search option 1: a list of the relevant results of a literature search, in chronological or author order. Usually takes at least 1 working week." }, { "description": "It usually takes the KLS team at least 2 working weeks to complete this request.", "text": "Option 2. A list of the relevant literature search results, organised or annotated by theme or study type.", - "value": "Option 2. A list of the relevant literature search results, organised or annotated by theme or study type." + "value": "Search option 2: a list of relevant results of a literature search, organised or annotated, by theme or study type. Usually takes at least 2 working weeks." } ] }, @@ -1616,15 +1613,15 @@ }, { "text": "Office for Health Improvement and Disparities", - "value": "OHID" + "value": "Office for Health Improvement and Disparities (OHID)" }, { "text": "NHS England Public Health", - "value": "NHSE" + "value": "NHS England Public Health" }, { "text": "Local Authority Public Health", - "value": "LAPH" + "value": "Local Authority Public Health" } ] }, @@ -1720,11 +1717,11 @@ "items": [ { "text": "Literature search", - "value": "Literature search" + "value": "Literature Searches" }, { "text": "Current awareness alerts", - "value": "Current awareness alerts" + "value": "Current Awareness" }, { "text": "General enquiry", @@ -1772,8 +1769,8 @@ "value": "North West" }, { - "text": "Yorkshire and Humber", - "value": "Yorkshire and Humber" + "text": "Yorkshire & Humber", + "value": "Yorkshire & Humber" }, { "text": "East Midlands", @@ -1951,7 +1948,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Current awareness alerts", + "value": "Current Awareness", "display": "Current awareness alerts" } } @@ -1973,7 +1970,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Literature search", + "value": "Literature Searches", "display": "Literature search" } } @@ -1995,7 +1992,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Evidence briefing", + "value": "Evidence Briefings", "display": "Evidence briefing" } } @@ -2017,7 +2014,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Systematic review", + "value": "Systematic Reviews", "display": "Systematic review" } } @@ -2053,7 +2050,7 @@ "operator": "is not", "value": { "type": "Value", - "value": "Current awareness alerts", + "value": "Current Awareness", "display": "Current awareness alerts" } } @@ -2075,7 +2072,7 @@ "operator": "is", "value": { "type": "Value", - "value": "LAPH", + "value": "Local Authority Public Health", "display": "LAPH" } } @@ -2141,7 +2138,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Literature search", + "value": "Literature Searches", "display": "Literature search" } } @@ -2163,7 +2160,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Current awareness alerts", + "value": "Current Awareness", "display": "Current awareness alerts" } } @@ -2185,7 +2182,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Literature search", + "value": "Literature Searches", "display": "Literature search" } }, @@ -2199,7 +2196,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Literature search", + "value": "Literature Searches", "display": "Literature search" } } @@ -2235,7 +2232,7 @@ "operator": "is not", "value": { "type": "Value", - "value": "Evidence briefing", + "value": "Evidence Briefings", "display": "Evidence briefing" } }, @@ -2249,7 +2246,7 @@ "operator": "is not", "value": { "type": "Value", - "value": "Current awareness alerts", + "value": "Current Awareness", "display": "Current awareness alerts" } } @@ -2301,4 +2298,4 @@ "url": "/kls-feedback" }, "jwtKey": "23029328asdasd3923208902de902" -} \ No newline at end of file +} From 65ea98f13a390a85d1b449fca4236139afc6c322 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Fri, 13 Jun 2025 10:19:21 +0100 Subject: [PATCH 287/403] KLS-Form-V4 (#396) --- runner/src/server/forms/kls-magic-link.json | 8 +- runner/src/server/forms/kls-path-1.json | 135 +++++++++++++++----- 2 files changed, 108 insertions(+), 35 deletions(-) diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index 1321d4d171..2e42763488 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -1,6 +1,10 @@ { "startPage": "/start", "skipSummary": true, + "authentication": true, + "toggle": true, + "toggleRedirect": "/kls-path-1/which-organisation-do-you-work-for-DUPE", + "retryTimeoutSeconds": 300, "analytics": { "matomoId": "11", @@ -85,7 +89,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to access the Knowledge and Library Services form.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", "schema": {} }, { @@ -230,7 +234,7 @@ } } ], - "jwtKey": "sdasdsadsasdasasdasdsdsdsdas", + "jwtKey": "${KLSJwtKey}", "feedback": { "feedbackForm": true, "url": "/feedback" diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index 8146b588fa..4e17d32ef8 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -2,17 +2,21 @@ "metadata": {}, "startPage": "/start", "fullStartPage": "/kls-path-1/start", + "authentication": true, + "toggle": true, "serviceName": "Knowledge and Library Services", "analytics": { "matomoUrl": "https://ukhsakls.matomo.cloud", "matomoId": "11" }, "webhookHmacSharedKey": "${KLSkey}", + "fileUploadHmacSharedKey": "${KLSFileUploadKey}", "magicLinkConfig": "kls-magic-link", "pages": [ { "title": "Contact the Knowledge and Library Services team", "path": "/start", + "unauthenticated": true, "components": [], "next": [ { @@ -23,6 +27,7 @@ }, { "path": "/which-organisation-do-you-work-for", + "unauthenticated": true, "title": "Which organisation do you work for?", "components": [ { @@ -51,6 +56,7 @@ }, { "path": "/please-contact-us-via-email", + "unauthenticated": true, "title": "Please contact us via email", "components": [ { @@ -93,7 +99,12 @@ { "name": "RpctHr", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } }, "type": "TextField", "title": "Job title", @@ -195,15 +206,16 @@ "schema": {} }, { - "name": "aazUpS", - "options": { - "required": false - }, - "type": "FileUploadField", - "title": "Please attach any supporting information, for example a protocol or list of references.", - "schema": {}, - "hint": "" - } + "name":"bYWcrH", + "options":{ + "multiple":true, + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" + }, + "type":"FileUploadField", + "title":"CHANGE Me 1 :)!" + } + + ], "next": [ { @@ -272,7 +284,12 @@ { "name": "bhBuDQ", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter relevant concepts", + "any.only": "Enter relevant concepts", + "string.empty": "Enter relevant concepts" + } }, "type": "MultilineTextField", "title": "Explain any relevant concepts", @@ -397,7 +414,12 @@ { "name": "WNVZzn", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter what you will use the results for", + "any.only": "Enter what you will use the results for", + "string.empty": "Enter what you will use the results for" + } }, "type": "SelectField", "title": "What will you primarily use the results of this search for?", @@ -420,7 +442,12 @@ { "name": "qwQlWP", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter your preferred results format", + "any.only": "Enter your preferred results format", + "string.empty": "Enter your preferred results format" + } }, "type": "CheckboxesField", "title": "What is your preferred results format?", @@ -448,7 +475,13 @@ }, { "name": "lIUPMw", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Enter type of review", + "any.only": "Enter type of review", + "string.empty": "Enter type of review" + } + }, "type": "SelectField", "title": "What type of review are you doing?", "list": "cZlqVP", @@ -470,7 +503,12 @@ { "name": "byRMpb", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter reason for review", + "any.only": "Enter reason review", + "string.empty": "Enter reason review" + } }, "type": "SelectField", "title": "What is the reason for conducting this review?", @@ -492,7 +530,12 @@ { "name": "diftRU", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter where to publish review", + "any.only": "Enter where to publish review", + "string.empty": "Enter where to publish review" + } }, "type": "SelectField", "title": "Where do you intend to publish your review?", @@ -521,7 +564,12 @@ { "name": "dmgVPY", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter if you have written a protocol", + "any.only": "Enter if you have written a protocol", + "string.empty": "Enter if you have written a protocol" + } }, "type": "YesNoField", "title": "Have you written a protocol?", @@ -569,7 +617,12 @@ { "name": "TNXqpA", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for population", + "any.only": "Enter your inclusion criteria for population", + "string.empty": "Enter your inclusion criteria for population" + } }, "type": "MultilineTextField", "title": "What are your inclusion criteria for population?", @@ -578,7 +631,12 @@ { "name": "KXXNzf", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for intervention or exposure", + "any.only": "Enter your inclusion criteria for intervention or exposure", + "string.empty": "Enter your inclusion criteria for intervention or exposure" + } }, "type": "MultilineTextField", "title": "What are your inclusion criteria for intervention or exposure?", @@ -587,7 +645,12 @@ { "name": "GjCFLx", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for setting/location", + "any.only": "Enter your inclusion criteria for setting/location", + "string.empty": "Enter your inclusion criteria for setting/location" + } }, "type": "MultilineTextField", "title": "What are your inclusion criteria for setting/location?", @@ -596,7 +659,12 @@ { "name": "MgKlsM", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for outcomes", + "any.only": "Enter your inclusion criteria for outcomes", + "string.empty": "Enter your inclusion criteria for outcomes" + } }, "type": "MultilineTextField", "title": "What are your inclusion criteria for outcomes?", @@ -638,16 +706,17 @@ "title": "Enquiry title", "schema": {} }, - { - "name": "FIvjTg", - "options": { - "required": false - }, - "type": "FileUploadField", - "title": "Upload a file", - "hint": "To support the KLS team in dealing with your query, you may upload a file here.", - "schema": {} - } +{ + "name": "FIvjTg", + "type": "FileUploadField", + "title": "Upload a file v2", + "hint": "To support the KLS team in dealing with your query, you may upload a file here.", + "schema": {}, + "options": { + "multiple": true, + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" + } +} ], "next": [ { @@ -1529,7 +1598,7 @@ "items": [ { "text": "Peer reviewed journal", - "value": "Journal" + "value": "Peer reviewed journal" }, { "description": "", @@ -2297,5 +2366,5 @@ "feedbackForm": true, "url": "/kls-feedback" }, - "jwtKey": "23029328asdasd3923208902de902" + "jwtKey": "${KLSJwtKey}" } From 7a34b4a5f7d89f6daf747b43959a18c9e5887b12 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Fri, 13 Jun 2025 10:19:38 +0100 Subject: [PATCH 288/403] Modify fileupload to send customSecurityHeaders (#395) - headers added to payload (see Commit d242c8c) - added schemas for HMAC keys for this specific features (diff teams can use different keys for signature generation) - Modified Upload service to take in more useful file types --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + .../files/prehandlers/handleUpload.ts | 2 +- .../server/services/upload/uploadService.ts | 93 +++++++++++++------ 4 files changed, 70 insertions(+), 27 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index f6442372c4..186482e22b 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -226,6 +226,7 @@ export type FormDefinition = { invalidDomainRedirect?: string | undefined; analytics?: Analytics; webhookHmacSharedKey?: string | undefined; + fileUploadHmacSharedKey?: string | undefined; fullStartPage?: string | undefined; serviceName?: string | undefined; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index db96fa3d7c..d0a9e20de8 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -358,6 +358,7 @@ export const Schema = joi invalidDomainRedirect: joi.string().optional(), analytics: analyticsSchema.optional(), webhookHmacSharedKey: joi.string().optional(), + fileUploadHmacSharedKey: joi.string().optional(), fullStartPage: joi.string().optional(), serviceName: joi.string().optional(), }); diff --git a/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts b/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts index a775ff098c..154375a70f 100644 --- a/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts +++ b/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts @@ -46,7 +46,7 @@ export async function handleUpload( let response; try { - response = await uploadService.uploadDocuments(streams); + response = await uploadService.uploadDocuments(streams,request); } catch (err) { if (err.data?.res) { const { error } = uploadService.parsedDocumentUploadResponse(err.data); diff --git a/runner/src/server/services/upload/uploadService.ts b/runner/src/server/services/upload/uploadService.ts index 9990ab7eb1..9f19c283fc 100644 --- a/runner/src/server/services/upload/uploadService.ts +++ b/runner/src/server/services/upload/uploadService.ts @@ -2,6 +2,7 @@ import FormData from "form-data"; import config from "../../config"; import { get, post } from "../httpService"; +import { createHmacRaw } from "../../utils/hmac"; import { HapiRequest, HapiResponseToolkit, HapiServer } from "../../types"; type Payload = HapiRequest["payload"]; @@ -104,7 +105,7 @@ export class UploadService { }); } - async uploadDocuments(streams: any[]) { + async uploadDocuments(streams: any[], request: HapiRequest) { const form = new FormData(); for (const stream of streams) { form.append("files", stream, { @@ -113,14 +114,35 @@ export class UploadService { }); } - const requestData = { headers: form.getHeaders(), payload: form }; - const responseData = await post( - `${config.documentUploadApiUrl}/v1/files`, - requestData - ); + const formHeaders = form.getHeaders(); - return this.parsedDocumentUploadResponse(responseData); - } + + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + const hmacKey = model?.def?.fileUploadHmacSharedKey; + + const [hmacSignature, requestTime] = await createHmacRaw( + request.yar.id, + hmacKey + ); + + const customSecurityHeaders = { + "X-Request-ID": request.yar.id.toString(), + "X-HMAC-Signature": hmacSignature.toString(), + "X-HMAC-Time": requestTime.toString(), + }; + + const headers = { + ...formHeaders, + ...customSecurityHeaders, + }; + + const requestData = { headers, payload: form }; + const responseData = await post(`${config.documentUploadApiUrl}/v1/files`, requestData); + + return this.parsedDocumentUploadResponse(responseData); +} parsedDocumentUploadResponse({ res, payload }) { const warning = payload?.toString?.(); @@ -155,23 +177,30 @@ export class UploadService { return h.continue; } - validateContentType( - file: HapiReadableStream, - customAcceptedTypes?: string[] - ) { - const acceptedTypes = customAcceptedTypes ?? this.validContentTypes; - - return acceptedTypes.includes(file?.hapi?.headers?.["content-type"]); +validateContentType( + file: HapiReadableStream, + customAcceptedTypes?: string[] +) { + const contentType = file?.hapi?.headers?.["content-type"]; + const filename = file?.hapi?.filename; + const acceptedTypes = customAcceptedTypes ?? this.validContentTypes; + + let isValid = acceptedTypes.includes(contentType); + + // Fallback: allow .ris files with 'application/octet-stream' + // API BACKEND - Will be used to scan if this is actually what it claims to be ... + if (!isValid && filename?.endsWith(".ris")) { + this.logger.warn("UPLOAD_WARNING", { + reason: "RIS file had generic content type", + filename, + contentType + }); + isValid = true; } - invalidFileTypeError(fieldName: string, customAcceptedTypes?: string[]) { - return parsedError( - fieldName, - this.validFiletypesString(customAcceptedTypes) - ); - } - downloadDocuments(paths: string[]) { + return isValid; +} downloadDocuments(paths: string[]) { const promises = paths.map((path) => get(path, {})); return Promise.all(promises); } @@ -191,9 +220,21 @@ export class UploadService { const contentTypeToName = { "image/jpeg": "jpg, jpeg", "image/png": "png", - "application/pdf": "pdf", - "application/vnd.oasis.opendocument.text": "odt", - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": - "docx", + "image/gif": "gif", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx", "text/csv": "csv", + "application/vnd.ms-excel.sheet.macroEnabled.12": "xlsm", + "application/xml": "xml", + "application/pdf": "pdf", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "docx", + "application/rtf": "rtf", + "text/rtf": "rtf", + "application/msword": "doc", + "application/x-research-info-systems": "ris", + "text/ris": "ris", + "text/plain": "txt", + "application/vnd.ms-outlook": "msg", + "application/vnd.openxmlformats-officedocument.presentationml.presentation": "pptx", + "application/vnd.ms-excel": "xls" + // "application/zip": "zip" }; From 4c25bf0e3165197b0dd7734753d8e24c8f15a208 Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Fri, 13 Jun 2025 10:19:51 +0100 Subject: [PATCH 289/403] Config change - KLS fileupload takeover (#394) - This allows fileupload feature to send data to KLS API - At this time, no other team is using this feature, so we will claim it - This is temporary and will be removed (hence seperate commit to track the change) - KLS promise to remove this or will implement a config based version at a later date --- runner/config/default.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/config/default.js b/runner/config/default.js index f29d93c2be..cb8e271ca2 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -109,7 +109,7 @@ module.exports = { // If both the api env and node env are set to "production", the pay return url will need to be secure. // This is not the case if either are set to "test", or if the node env is set to "development" // payReturnUrl: "http://localhost:3009" - // documentUploadApiUrl: "", + documentUploadApiUrl: "${KLSUploadAPILink}", // ordnanceSurveyKey: "", // deprecated - this API is deprecated // browserRefreshUrl: "", // deprecated - idk what this does From 763b6910b5dacfc65f9e05422ff4fbd6908de2cd Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Fri, 13 Jun 2025 15:22:07 +0100 Subject: [PATCH 290/403] bug fix, make file upload optional (#397) --- runner/src/server/forms/kls-path-1.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index 4e17d32ef8..0f955c0f64 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -208,8 +208,9 @@ { "name":"bYWcrH", "options":{ - "multiple":true, - "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" + "multiple": true, + "required": false, + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" }, "type":"FileUploadField", "title":"CHANGE Me 1 :)!" @@ -714,6 +715,7 @@ "schema": {}, "options": { "multiple": true, + "required": false, "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" } } From 38b5265f91a93d754f277388aa4c8b075300f48f Mon Sep 17 00:00:00 2001 From: SullyK <68860309+SullyK@users.noreply.github.com> Date: Mon, 16 Jun 2025 10:04:38 +0100 Subject: [PATCH 291/403] - v5 config - pen test ready + bug fixes (#398) - Fix auth bug issue requiring authentication on non-allowed domain info redirect - Modified to env based hmacKey on magic-link - Modified KLS notify to be env variables - Minor spelling/issues fixed - Pen testing emails deployed - other Misc bug fixes --- runner/src/server/forms/kls-magic-link.json | 19 ++++++++++--------- runner/src/server/forms/kls-path-1.json | 14 +++++++------- .../server/services/upload/uploadService.ts | 12 +++++++++++- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index 2e42763488..b7591584b7 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -11,7 +11,7 @@ "matomoUrl": "https://ukhsakls.matomo.cloud" }, "magicLinkConfig": "kls-magic-link", - "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk"], + "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk", "nccpentest.com", "nccgroup.com"], "invalidDomainRedirect": "/kls-magic-link/your-email-is-not-on-our-approved-list", "serviceName": "Knowledge and Library Services", "fullStartPage": "/kls-path-1/start", @@ -114,6 +114,7 @@ "backLinkFallback": "/kls-magic-link", "path": "/your-email-is-not-on-our-approved-list", "title": "Your email is not on our approved list", + "unauthenticated": true, "components": [ { "name": "GVrjNV", @@ -137,7 +138,7 @@ "name": "SentAnotherEmail", "options": {}, "type": "Para", - "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    ", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue with your enquiry.

    ", "schema": {} }, { @@ -159,13 +160,13 @@ }, { "path": "/email-confirmed", - "title": "Email confirmed", + "title": "Thank you for verifying your email", "components": [ { "name": "EmailConfirmed", "options": {}, "type": "Para", - "content": "You have successfully confirmed your email address. You can continue to REPLACE ME.

    Continue", + "content": "You have successfully confirmed your email address. You can now continue with your enquiry.

    Continue", "schema": {} } ] @@ -208,7 +209,7 @@ "confirmationPage": { "customText": { "hidePanel": true, - "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to with your enquiry.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" } } }, @@ -222,15 +223,15 @@ "outputs": [ { "name": "magiclink", - "title": "CareOBRA MagicLink", + "title": "KLS MagicLink", "type": "notify", "outputConfiguration": { - "apiKey": "klsdevapikeys-c3c1543d-5025-4560-9766-46f5827a6811-f5d1bc8f-803e-4701-a6fe-840e1209fde8", - "templateId": "7b61b152-8648-4e5b-af0c-81f7c3889bb2", + "apiKey": "${KLSnotifyApiKey}", + "templateId": "${KLSNotifyTemplateId}", "emailField": "email", "addReferencesToPersonalisation": false, "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], - "hmacKey": "hmacnkeyyyyyys" + "hmacKey": "${KLSMagicLinkHmacKey}" } } ], diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index 0f955c0f64..53a96d8b2b 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -210,7 +210,7 @@ "options":{ "multiple": true, "required": false, - "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" }, "type":"FileUploadField", "title":"CHANGE Me 1 :)!" @@ -348,7 +348,7 @@ "maxDaysInPast": "0", "customValidationMessages": { "nonNumeric": "The date must be in the format of DD/MM/YYYY", - "date.min": "Desired completion date can’t be before today - Ask colin/Jahdiel to look at this" + "date.min": "Desired completion date cannot be before today" } }, "type": "DatePartsField", @@ -506,9 +506,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter reason for review", - "any.only": "Enter reason review", - "string.empty": "Enter reason review" + "any.required": "Enter reason for the review", + "any.only": "Enter reason for the review", + "string.empty": "Enter reason for the review" } }, "type": "SelectField", @@ -716,7 +716,7 @@ "options": { "multiple": true, "required": false, - "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel" + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" } } ], @@ -736,7 +736,7 @@ }, { "path": "/which-organisation-do-you-work-for-DUPE", - "title": "Which organisation do you work for-DUPE?", + "title": "Which organisation do you work for?", "components": [ { "name": "wyvXTj", diff --git a/runner/src/server/services/upload/uploadService.ts b/runner/src/server/services/upload/uploadService.ts index 9f19c283fc..a434921b0b 100644 --- a/runner/src/server/services/upload/uploadService.ts +++ b/runner/src/server/services/upload/uploadService.ts @@ -198,6 +198,16 @@ validateContentType( isValid = true; } + // Fallback: allow .msg files with 'application/octet-stream' + if (!isValid && filename?.endsWith(".msg")) { + this.logger.warn("UPLOAD_WARNING", { + reason: "RIS file had generic content type", + filename, + contentType + }); + isValid = true; + } + return isValid; } downloadDocuments(paths: string[]) { @@ -235,6 +245,6 @@ const contentTypeToName = { "text/plain": "txt", "application/vnd.ms-outlook": "msg", "application/vnd.openxmlformats-officedocument.presentationml.presentation": "pptx", - "application/vnd.ms-excel": "xls" + "application/vnd.ms-excel": "xls", // "application/zip": "zip" }; From c1ff1a6120e1e6c54f15de7075c656b9e80763cb Mon Sep 17 00:00:00 2001 From: Sully Date: Thu, 19 Jun 2025 01:33:49 +0100 Subject: [PATCH 292/403] Bypasses basic safelink check by outlook --- .../engine/pageControllers/MagicLinkController.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts index ebf0afc6ad..f35136d96e 100644 --- a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts @@ -23,6 +23,11 @@ export class MagicLinkController extends PageController { const validation = await validateHmac(email, hmac, requestTime, hmacKey); + //Outlook safelink consumes magic link - This bypasses it + if (!request.headers["user-agent"]) { + return h.response("Ignored bot request").code(200); + } + const { cacheService } = request.services([]); const state = await cacheService.getState(request); @@ -131,7 +136,11 @@ export class MagicLinkController extends PageController { const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; const validation = await validateHmac(email, hmac, requestTime, hmacKey); - + + //Outlook safelink consumes magic link - This bypasses it + if (!request.headers["user-agent"]) { + return h.response("Ignored bot request").code(200); + } if (validation.isValid) { const token = Jwt.token.generate( { email: request.query.email }, From 73092fc03b236d97388a10859f4977f0e3dcfc17 Mon Sep 17 00:00:00 2001 From: Sully Date: Thu, 19 Jun 2025 03:22:47 +0100 Subject: [PATCH 293/403] Feat: Option to remove back button: - This feature allows you to remove the back button on a given page with the following: "disableBackLink": true - This was added since the magic link feature redirects back to a form but still shows a back button --- model/src/data-model/types.ts | 1 + model/src/schema/schema.ts | 1 + .../pageControllers/PageControllerBase.ts | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index 186482e22b..3a4a748e53 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -13,6 +13,7 @@ export interface Page { title: string; path: string; unauthenticated?: boolean; + disableBackLink?: boolean; controller: string; components?: ComponentDef[]; section?: string; // the section ID diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index d0a9e20de8..4f33872051 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -125,6 +125,7 @@ const pageSchema = joi.object().keys({ repeatField: joi.string().optional(), options: joi.object().optional(), backLinkFallback: joi.string().optional(), + disableBackLink: joi.bool().optional(), }); const startNavigationLinkSchema = joi.object().keys({ diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index f58a707ba0..fcdb2f07d3 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -64,6 +64,7 @@ export class PageControllerBase { hasFormComponents: boolean; hasConditionalFormComponents: boolean; backLinkFallback?: string; + disableBackLink?: boolean; // TODO: pageDef type constructor(model: FormModel, pageDef: { [prop: string]: any } = {}) { @@ -80,6 +81,7 @@ export class PageControllerBase { this.condition = pageDef.condition; this.repeatField = pageDef.repeatField; this.backLinkFallback = pageDef.backLinkFallback; + this.disableBackLink = pageDef.disableBackLink; this.disableSingleComponentAsHeading = pageDef.disableSingleComponentAsHeading; @@ -609,10 +611,14 @@ export class PageControllerBase { await cacheService.mergeState(request, { progress }); - viewModel.backLink = - progress[progress.length - 2] ?? this.backLinkFallback; + if (this.disableBackLink) { + viewModel.backLink = undefined; + } else { + viewModel.backLink = progress[progress.length - 2] ?? this.backLinkFallback; + } viewModel.allowExit = this.model.allowExit; + return h.view(this.viewName, viewModel); }; } @@ -957,7 +963,12 @@ export class PageControllerBase { private renderWithErrors(request, h, payload, num, progress, errors) { const viewModel = this.getViewModel(payload, num, errors); - viewModel.backLink = progress[progress.length - 2] ?? this.backLinkFallback; + if (this.disableBackLink) { + viewModel.backLink = undefined; + } else { + viewModel.backLink = progress[progress.length - 2] ?? this.backLinkFallback; + } + this.setPhaseTag(viewModel); this.setFeedbackDetails(viewModel, request); viewModel.allowExit = this.model.allowExit; From ada66859779f3069a527e51f05285eafd8d1413b Mon Sep 17 00:00:00 2001 From: katrinatang-mudano Date: Mon, 23 Jun 2025 10:31:47 +0100 Subject: [PATCH 294/403] added training form and back link --- runner/src/server/forms/kls-magic-link.json | 3 +- runner/src/server/forms/kls-path-1.json | 17 +- .../server/forms/kls-training-magic-link.json | 254 +++++ runner/src/server/forms/kls-training.json | 946 ++++++++++++++++++ 4 files changed, 1214 insertions(+), 6 deletions(-) create mode 100644 runner/src/server/forms/kls-training-magic-link.json create mode 100644 runner/src/server/forms/kls-training.json diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index b7591584b7..4559c8fe43 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -165,8 +165,9 @@ { "name": "EmailConfirmed", "options": {}, + "disableBackLink": true, "type": "Para", - "content": "You have successfully confirmed your email address. You can now continue with your enquiry.

    Continue", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", "schema": {} } ] diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index 53a96d8b2b..3d10c75099 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -116,7 +116,8 @@ "customValidationMessages": { "any.required": "Enter email address", "any.only": "Enter email address", - "string.empty": "Enter email address" + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, "type": "EmailAddressField", @@ -194,7 +195,7 @@ "required": false }, "type": "MultilineTextField", - "title": "If you need to tell us more, please do so in this text box", + "title": "If there is any more information that you think will help the team in dealing with your enquiry, please enter it below", "schema": {} }, { @@ -210,10 +211,10 @@ "options":{ "multiple": true, "required": false, - "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" }, "type":"FileUploadField", - "title":"CHANGE Me 1 :)!" + "title":"If you need to upload a file to help us deal with your enquiry, do so here. (optional)" } @@ -1039,7 +1040,8 @@ "customValidationMessages": { "any.required": "Enter email address", "any.only": "Enter email address", - "string.empty": "Enter email address" + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, "type": "EmailAddressField", @@ -1386,6 +1388,11 @@ "description": "", "text": "RIS (for reference management software)", "value": "RIS (for reference management software)" + }, + { + "description": "", + "text": "Regular email alert", + "value": "Regular email alert" } ] }, diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json new file mode 100644 index 0000000000..28a31e644b --- /dev/null +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -0,0 +1,254 @@ +{ + "metadata": {}, + "startPage": "/start", + "skipSummary": true, + "authentication": true, + "toggle": true, + "toggleRedirect": "/kls-training/training-request-part-1", + "magicLinkConfig": "kls-training-magic-link", + "allowedDomains": [ + "ukhsa.gov.uk", + "dhsc.gov.uk", + "nhs.net", + "nhs.uk", + "gov.uk" + ], + "invalidDomainRedirect": "/kls-training-magic-link/your-email-is-not-on-our-approved-list", + "serviceName": "Knowledge and Library Services", + "fullStartPage": "/kls-training/start", + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController", + "unauthenticated": true + }, + { + "title": "Enter your email address", + "path": "/email", + "unauthenticated": true, + "continueButtonText": "Continue", + "showContinueButton": true, + "backLinkFallback": "/kls-training/training-request-part-1", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.
    ", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Enter your email address", + "name": "email", + "options": { + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Enter an email address", + "any.only": "Enter an email address", + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "hint": "Only email addresses that end in .gov.uk, nhs.uk, or nhs.net can be accepted." + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice.", + "schema": {} + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "unauthenticated": true, + "backLinkFallback": "/start", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to access the Knowledge and Library Services form.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", + "schema": {} + } + ] + }, + { + "backLinkFallback": "/kls-training-magic-link", + "path": "/your-email-is-not-on-our-approved-list", + "title": "Your email is not on our approved list", + "components": [ + { + "name": "GVrjNV", + "options": {}, + "type": "Para", + "content": " The email you provided does not match our approved email criteria. We only accept emails from goverment orgainsation limited to UKHSA, OHID, Local Authorities and the NHS (nhs.uk and nhs.net).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk ", + "schema": {} + } + ] + }, + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "unauthenticated": true, + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an access the Knowledge and Library Services.

    ", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "title": "Thank you for verifying your email", + "path": "/email-confirmed", + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "disableBackLink": true, + "type": "Para", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to access the Knowledge and Library Services.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "phaseBanner": { + "phase": "beta" + }, + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "KLS Training MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "klsdevapikeys-c3c1543d-5025-4560-9766-46f5827a6811-f5d1bc8f-803e-4701-a6fe-840e1209fde8", + "templateId": "7b61b152-8648-4e5b-af0c-81f7c3889bb2", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": [ + "email", + "hmacSignature", + "hmacExpiryTime" + ], + "hmacKey": "hmacnkeyyyyyys" + } + } + ], + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, + "version": 2, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "jwtKey": "${KLSTrainingJwtKey}" +} \ No newline at end of file diff --git a/runner/src/server/forms/kls-training.json b/runner/src/server/forms/kls-training.json new file mode 100644 index 0000000000..446ec59541 --- /dev/null +++ b/runner/src/server/forms/kls-training.json @@ -0,0 +1,946 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "/kls-training/start", + "authentication": true, + "toggle": true, + "serviceName": "Knowledge and Library Services", + "magicLinkConfig": "kls-training-magic-link", + "webhookHmacSharedKey": "${KLSTrainingKey}", + "pages": [ + { + "title": "Contact the Knowledge and Library Services team", + "path": "/start", + "components": [], + "next": [ + { + "path": "/which-organisation-do-you-work-for" + } + ], + "controller": "./pages/start.js" + }, + { + "path": "/which-organisation-do-you-work-for", + "unauthenticated": true, + "title": "Which organisation do you work for?", + "components": [ + { + "name": "ZpmVWP", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select an organisation", + "any.only": "Select an organisation", + "string.empty": "Select an organisation" + } + }, + "type": "RadiosField", + "title": "Organisation", + "hint": "The KLS service is available to staff from: UK Health Security Agency, Office for Health Improvement and Disparities, NHS England Public Health, and Local Authority Public Health. \n\nIf you do not belong to one of these organisations you can still contact the KLS team by selecting the 'Other' option to find the team's email address.", + "list": "uIwkHV", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/please-contact-us-via-email", + "condition": "BOkxIN" + }, + { + "path": "/magic-link-redirect", + "condition": "dhBTmP" + } + ] + }, + { + "path": "/please-contact-us-via-email", + "unauthenticated": true, + "title": "Please contact us via email", + "components": [ + { + "name": "ryhwUr", + "options": {}, + "type": "Html", + "content": "

    You are not eligable to use this service, however you can still contact the KLS team via the following email: libraries@kls.ukhsa.gov.uk

    " + } + ], + "next": [] + }, + { + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", + "next": [ + { + "path": "/training-request-part-1" + } + ] + }, + { + "path": "/training-request-part-1", + "title": "Training request part 1", + "components": [ + { + "name": "sqQXGM", + "options": {}, + "type": "Details", + "title": "What types of training sessions are available?", + "content": "

    1:1 Session: A personalised session tailored to your individual needs.

    \n\n\n

    Small Group Session: Training for 2–6 participants tailored to the needs of the group.

    \n\n\n

    Team Session: Selecting elements from our core programme this session can be tailored to the needs of the team and will support the team in developing essential information literacy skills. The session can be developed to help the team find reliable and relevant information efficiently, understand and evaluate sources critically and to use information effectively in research and decision making.

    ", + "schema": {} + }, + { + "name": "dQAIPE", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select training session type", + "any.only": "Select training session type", + "string.empty": "Select training session type" + } + }, + "type": "RadiosField", + "title": "What training session would you like us to provide?", + "list": "oegZub", + "values": { + "type": "listRef" + }, + "schema": {} + }, + { + "name": "WIIAQE", + "options": { + "required": true, + "customValidationMessages": { + "number.base": "Enter number of participants", + "number.min": "Number of participants must be greater than 0" + } + }, + "hint": "Enter number of participants", + "type": "NumberField", + "title": "What is the approximate number of participants?", + "schema": { + "min": 1 + } + }, + { + "name": "FaHtQr", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select preferred delivery type", + "any.only": "Select preferred delivery type", + "string.empty": "Select preferred delivery type" + } + }, + "type": "RadiosField", + "title": "What is your preferred delivery type?", + "list": "eVlDbd", + "values": { + "type": "listRef" + } + }, + { + "name": "CncFtZ", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected \"In person\", please indicate a region or site" + } + ], + "next": [ + { + "path": "/training-request-part-2" + } + ] + }, + { + "title": "Enquiry summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [ + { + "name": "PdoDpO", + "options": {}, + "type": "Para", + "content": "Please check your details and click the 'Submit' button." + } + ], + "next": [] + }, + { + "path": "/training-request-part-2", + "title": "Training request part 2", + "components": [ + { + "name": "BpuPgW", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select an organisation", + "any.only": "Select an organisation", + "string.empty": "Select an organisation" + } + }, + "type": "RadiosField", + "title": "Which organisation do you belong to?", + "list": "UzXxgh" + }, + { + "name": "hMxELK", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select topic(s)", + "any.only": "Select topics(s)", + "string.empty": "Select topics(s)" + } + }, + "type": "CheckboxesField", + "title": "What topic(s) would you like to cover?", + "hint": "Select all that apply", + "list": "mwdJGV", + "schema": {} + }, + { + "name": "ftUkbz", + "options": { + "required": false + }, + "type": "TextField", + "title": "If Other, please specify." + }, + { + "name": "gpIAot", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter team specialty", + "any.only": "Enter team specialty", + "string.empty": "Enter team specialty" + } + }, + "type": "MultilineTextField", + "title": "Please let us know your team’s area of specialism and any specific topic you would like the training to focus on. Alternatively, indicate if you would prefer a more generic training session. " + }, + { + "name": "ojkYsn", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter suggested date", + "any.only": "Enter suggested date", + "string.empty": "Enter suggested date" + } + }, + "type": "TextField", + "title": "Suggested date(s) for the session:" + } + ], + "next": [ + { + "path": "/about-you", + "condition": "jXoEVp" + }, + { + "path": "/about-you-kyBsdt", + "condition": "bzXkMZ" + }, + { + "path": "/about-you-bHKmvx" + } + ] + }, + { + "path": "/about-you", + "title": "About you", + "components": [ + { + "name": "zmJhdG", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter full name", + "any.only": "Enter full name", + "string.empty": "Enter full name" + } + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "XpqMGU", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "UlQfrt", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter group", + "any.only": "Enter group", + "string.empty": "Enter group" + } + }, + "type": "SelectField", + "title": "Group", + "hint": "Tell us which UKHSA work group you belong to", + "list": "TjWRyC", + "values": { + "type": "listRef" + } + }, + { + "name": "DMyqPG", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter directorate", + "any.only": "Enter directorate", + "string.empty": "Enter directorate" + } + }, + "type": "SelectField", + "title": "Directorate", + "hint": "Tell us which directorate you belong to", + "list": "likBcc", + "values": { + "type": "listRef" + } + }, + { + "name": "QUKKlr", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter location", + "any.only": "Enter location", + "string.empty": "Enter location" + } + }, + "type": "SelectField", + "title": "Location", + "list": "TqrOXp" + }, + { + "name": "YkNqCD", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter an email address", + "any.only": "Enter an email address", + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "nameHasError": false + }, + { + "name": "lZOKDY", + "options": { + "required": false + }, + "type": "EmailAddressField", + "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/about-you-kyBsdt", + "title": "About you", + "components": [ + { + "name": "kGNuQf", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter full name", + "any.only": "Enter full name", + "string.empty": "Enter full name" + } + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "IqdqPY", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "YkNqCD", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter an email address", + "any.only": "Enter an email address", + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "AOadZe", + "options": { + "required": false + }, + "type": "EmailAddressField", + "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" + }, + { + "name": "GjKMBs", + "options": { + "customValidationMessages": { + "any.required": "Enter location", + "any.only": "Enter location", + "string.empty": "Enter location" + } + }, + "type": "SelectField", + "title": "Location", + "list": "WyDhtv" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/about-you-bHKmvx", + "title": "About you", + "components": [ + { + "name": "eRUvFD", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter full name", + "any.only": "Enter full name", + "string.empty": "Enter full name" + } + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "fPTkAc", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "UpNOKZ", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter an email address", + "any.only": "Enter an email address", + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "cEhUTE", + "options": { + "required": false + }, + "type": "EmailAddressField", + "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" + } + ], + "next": [ + { + "path": "/summary" + } + ] + } + ], + "lists": [ + { + "title": "Training session options", + "name": "oegZub", + "type": "string", + "items": [ + { + "text": "1:1 session", + "description": "", + "value": "1:1 session" + }, + { + "text": "Small group session ", + "description": "", + "value": "Small group session " + }, + { + "description": "", + "text": "Team session", + "value": "Team session" + } + ] + }, + { + "title": "Delivery type", + "name": "eVlDbd", + "type": "string", + "items": [ + { + "text": "Online via teams", + "value": "Online via teams" + }, + { + "text": "In person", + "description": "", + "value": "In person" + } + ] + }, + { + "title": "Topic list", + "name": "mwdJGV", + "type": "string", + "items": [ + { + "text": "KLS overview", + "value": "KLS overview" + }, + { + "text": "Literature searching: finding the evidence", + "value": "Literature searching: finding the evidence" + }, + { + "text": "Searching for grey literature", + "value": "Searching for grey literature" + }, + { + "text": "EndNote: an introduction", + "value": "EndNote: an introduction" + }, + { + "text": "EndNote: cite while you write", + "value": "EndNote: cite while you write" + }, + { + "text": "Endnote: collaboration and sharing", + "value": "Endnote: collaboration and sharing" + }, + { + "text": "Accessing resources", + "value": "Accessing resources" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "user group", + "name": "UzXxgh", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "OHID" + }, + { + "text": "NHS England", + "value": "NHSE" + }, + { + "text": "Local Authority Public Health", + "value": "LAPH" + } + ] + }, + { + "title": "user groups", + "name": "tlYKzK", + "type": "string", + "items": [ + { + "text": "UKHSA", + "value": "UKHSA" + }, + { + "text": "OHID", + "value": "OHID" + }, + { + "text": "NHSE", + "value": "NHSE" + }, + { + "text": "LAPH", + "value": "LAPH" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Organisation", + "name": "uIwkHV", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "Office for Health Improvement and Disparities (OHID)" + }, + { + "text": "NHS England Public Health", + "value": "NHS England Public Health" + }, + { + "text": "Local Authority Public Health", + "value": "Local Authority Public Health" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Location: LAPH", + "name": "WyDhtv", + "type": "string", + "items": [ + { + "text": "North East", + "value": "North East" + }, + { + "text": "North West", + "value": "North West" + }, + { + "text": "Yorkshire & Humber", + "value": "Yorkshire & Humber" + }, + { + "text": "East Midlands", + "value": "East Midlands" + }, + { + "text": "West Midlands", + "value": "West Midlands" + }, + { + "text": "East of England", + "value": "East of England" + }, + { + "text": "London", + "value": "London" + }, + { + "text": "South East", + "value": "South East" + }, + { + "text": "South West", + "value": "South West" + } + ] + }, + { + "title": "UKHSA Group", + "name": "TjWRyC", + "type": "string", + "items": [ + { + "text": "Chief Scientific Officer (CSO)", + "value": "Chief Scientific Officer (CSO)" + }, + { + "text": "Chief Medical Advisor (CMA)", + "value": "Chief Medical Advisor (CMA)" + }, + { + "text": "Chief Data Officer (CDO)", + "value": "Chief Data Officer (CDO)" + }, + { + "text": "Chief Operating Officer (COO)", + "value": "Chief Operating Officer (COO)" + } + ] + }, + { + "title": "Directorate", + "name": "likBcc", + "type": "string", + "items": [ + { + "text": "CDO: Analysis and Intelligence Assessment", + "value": "CDO: Analysis and Intelligence Assessment" + }, + { + "text": "CDO: Data Protection, Security and Technology Services", + "value": "CDO: Data Protection, Security and Technology Services" + }, + { + "text": "CDO: Digital and Data", + "value": "CDO: Digital and Data" + }, + { + "text": "CDO: Digital and Technology Transition", + "value": "CDO: Digital and Technology Transition" + }, + { + "text": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations", + "value": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations" + }, + { + "text": "CMA: Epidemic and Emerging Infections", + "value": "CMA: Epidemic and Emerging Infections" + }, + { + "text": "CMA: Global Health Protection", + "value": "CMA: Global Health Protection" + }, + { + "text": "CMA: Health Equity and Clinical Governance", + "value": "CMA: Health Equity and Clinical Governance" + }, + { + "text": "CMA: Health Protection in Regions", + "value": "CMA: Health Protection in Regions" + }, + { + "text": "CMA: Public Health Programmes", + "value": "CMA: Public Health Programmes" + }, + { + "text": "COO: Commercial, Vaccines and Countermeasures Supply", + "value": "COO: Commercial, Vaccines and Countermeasures Supply" + }, + { + "text": "COO: Communications", + "value": "COO: Communications" + }, + { + "text": "COO: Finance, Performance, Risk and Assurance", + "value": "COO: Finance, Performance, Risk and Assurance" + }, + { + "text": "COO: People and Workplace", + "value": "COO: People and Workplace" + }, + { + "text": "COO: Public Inquiry", + "value": "COO: Public Inquiry" + }, + { + "text": "COO: Strategy and Policy", + "value": "COO: Strategy and Policy" + }, + { + "text": "COO: Transformation", + "value": "COO: Transformation" + }, + { + "text": "CSO: Public Health Microbiology", + "value": "CSO: Public Health Microbiology" + }, + { + "text": "CSO: Radiation, Chemicals, Climate and Environmental Hazards", + "value": "CSO: Radiation, Chemicals, Climate and Environmental Hazards" + }, + { + "text": "CSO: Science Strategy and Evidence", + "value": "CSO: Science Strategy and Evidence" + }, + { + "text": "CSO: Scientific Facilities and Performance", + "value": "CSO: Scientific Facilities and Performance" + } + ] + }, + { + "title": "Location: UKHSA", + "name": "TqrOXp", + "type": "string", + "items": [ + { + "text": "Chilton", + "value": "Chilton" + }, + { + "text": "Colindale", + "value": "Colindale" + }, + { + "text": "Porton", + "value": "Porton" + }, + { + "text": "Other", + "value": "Other" + } + ] + } + ], + "sections": [], + "conditions": [ + { + "displayName": "UKHSA path", + "name": "jXoEVp", + "value": { + "name": "UKHSA path", + "conditions": [ + { + "field": { + "name": "BpuPgW", + "type": "RadiosField", + "display": "Which organisation do you belong to?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "UKHSA", + "display": "UKHSA" + } + } + ] + } + }, + { + "displayName": "LAPH path", + "name": "bzXkMZ", + "value": { + "name": "LAPH path", + "conditions": [ + { + "field": { + "name": "BpuPgW", + "type": "RadiosField", + "display": "Which organisation do you belong to?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "LAPH", + "display": "LAPH" + } + } + ] + } + }, + { + "displayName": "Other", + "name": "BOkxIN", + "value": { + "name": "Other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "Not other", + "name": "dhBTmP", + "value": { + "name": "Not other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "eBBQeD", + "title": "test-output", + "type": "webhook", + "outputConfiguration": { + "url": "${KLSTrainingWebhook}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "jwtKey": "${KLSTrainingJwtKey}" +} \ No newline at end of file From 5acb4c9d4bf7b6d8d080a0ec226e9a70f46d29f6 Mon Sep 17 00:00:00 2001 From: kitttang Date: Mon, 23 Jun 2025 13:19:12 +0100 Subject: [PATCH 295/403] Update kls-training-magic-link.json --- .../server/forms/kls-training-magic-link.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index 28a31e644b..c53d06cd21 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -227,16 +227,16 @@ "title": "KLS Training MagicLink", "type": "notify", "outputConfiguration": { - "apiKey": "klsdevapikeys-c3c1543d-5025-4560-9766-46f5827a6811-f5d1bc8f-803e-4701-a6fe-840e1209fde8", - "templateId": "7b61b152-8648-4e5b-af0c-81f7c3889bb2", + "name": "magiclink", + "title": "KLS Training MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "${KLSTrainingNotifyApiKey}", + "templateId": "${KLSTrainingNotifyTemplateId}", "emailField": "email", "addReferencesToPersonalisation": false, - "personalisation": [ - "email", - "hmacSignature", - "hmacExpiryTime" - ], - "hmacKey": "hmacnkeyyyyyys" + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "${KLSTrainingMagicLinkHmacKey}" } } ], @@ -251,4 +251,4 @@ "showPaymentSkippedWarningPage": false }, "jwtKey": "${KLSTrainingJwtKey}" -} \ No newline at end of file +} From 2555cefce35e24cf45363d6cf19f245eafe0ed22 Mon Sep 17 00:00:00 2001 From: kitttang Date: Mon, 23 Jun 2025 13:35:39 +0100 Subject: [PATCH 296/403] Update kls-training-magic-link.json --- runner/src/server/forms/kls-training-magic-link.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index c53d06cd21..f5c89733e3 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -237,7 +237,8 @@ "addReferencesToPersonalisation": false, "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], "hmacKey": "${KLSTrainingMagicLinkHmacKey}" - } + } + } } ], "feedback": { From 5a61bf8db99ab6fa3b3d89ffa252181c24cff733 Mon Sep 17 00:00:00 2001 From: Natasha Myers Date: Tue, 24 Jun 2025 11:08:38 +0100 Subject: [PATCH 297/403] LOPS3-366: Added L3 webhook front end page to see if webhooks are returning correclty --- runner/src/server/forms/L3Webhook.json | 83 ++++++++++++++++++++ runner/src/server/services/webhookService.ts | 6 +- 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 runner/src/server/forms/L3Webhook.json diff --git a/runner/src/server/forms/L3Webhook.json b/runner/src/server/forms/L3Webhook.json new file mode 100644 index 0000000000..04f256e9b2 --- /dev/null +++ b/runner/src/server/forms/L3Webhook.json @@ -0,0 +1,83 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "path": "/start", + "title": "Start", + "components": [], + "next": [ + { + "path": "/question" + } + ] + }, + { + "path": "/question", + "title": "Question", + "sectionForEndSummaryPages": "ServiceUsersAndStaff", + "components": [ + { + "name": "Question", + "options": { + "summaryTitle": "", + "customValidationMessages": { + "number.base": "Enter a number between 0 and 999", + "number.max": "The number must be between 0 and 999", + "number.min": "The number must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Enter a number between 0 and 999", + "hint": "This is to send to the API", + "list": "ServiceUsersTypes" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://2aq9044u5l.execute-api.eu-west-2.amazonaws.com/prod/v1/echo", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "feedback": {}, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    ", + "title": "API returned", + "referenceTitle": "Api returned", + "referenceContent": "Go check the console for the status code" + } + } + } +} diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index aaeae14946..dbda8ac897 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -41,7 +41,7 @@ export class WebhookService { if (!sendAdditionalPayMetadata) { delete data?.metadata?.pay; } - const { payload } = await request(url, { + const { payload, res } = await request(url, { ...DEFAULT_OPTIONS, headers: { ...DEFAULT_OPTIONS.headers, @@ -54,12 +54,14 @@ export class WebhookService { return payload.reference; } - const Name = JSON.parse(payload)[0].Name; + const Name = JSON.parse(payload)[0]?.Name; if (Name) { return Name; } + console.log(res.statusCode, "status of the request is here"); + const { reference } = JSON.parse(payload); this.logger.info( From b625b7f54d4515b6ea20583cea24d699912b3809 Mon Sep 17 00:00:00 2001 From: Natasha Myers Date: Tue, 24 Jun 2025 11:29:00 +0100 Subject: [PATCH 298/403] LOPS3-366: Added README --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index c0e87e9073..fd0939f513 100644 --- a/README.md +++ b/README.md @@ -119,3 +119,11 @@ A suite of smoke tests are run against all PRs. There is a Cron Job that execute A legacy suite of smoke tests can be found in this [repository](https://github.com/XGovFormBuilder/digital-form-builder-legacy-smoke-tests). They have been removed so that the project can run on node 18. Smoke tests will be migrated to use [cypress.io](https://cypress.io) in the coming months. + +### L3 Webhook + +The webhook JSON is here: digital-form-builder/runner/src/server/forms/L3Webhook.json + +Add the URL of the client webhook that you are currently working with into the JSON (line 64) + +Run the system locally and make your way through the screens as you would with other forms. Then navigate to the console and search for "status of the request is here" to see the request status. You can also see the status in multiple info logs throughout the console. Look for logs like 'INFO (74824 on Burendo-C6XDQM96PK): request completed' and there will be a sub section of '"statusCode": 200.' From 8c03b2926f8edb9022a59258dc868d779e34d8d2 Mon Sep 17 00:00:00 2001 From: kitttang Date: Tue, 24 Jun 2025 17:40:13 +0100 Subject: [PATCH 299/403] fix for broken training form output bug and back link --- runner/src/server/forms/kls-magic-link.json | 2 +- runner/src/server/forms/kls-training-magic-link.json | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index 4559c8fe43..ef5dfd7238 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -161,11 +161,11 @@ { "path": "/email-confirmed", "title": "Thank you for verifying your email", + "disableBackLink": true, "components": [ { "name": "EmailConfirmed", "options": {}, - "disableBackLink": true, "type": "Para", "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", "schema": {} diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index f5c89733e3..4a9db9f9af 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -161,11 +161,11 @@ { "title": "Thank you for verifying your email", "path": "/email-confirmed", + "disableBackLink": true, "components": [ { "name": "EmailConfirmed", "options": {}, - "disableBackLink": true, "type": "Para", "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", "schema": {} @@ -223,10 +223,6 @@ "fees": [], "outputs": [ { - "name": "magiclink", - "title": "KLS Training MagicLink", - "type": "notify", - "outputConfiguration": { "name": "magiclink", "title": "KLS Training MagicLink", "type": "notify", @@ -237,7 +233,6 @@ "addReferencesToPersonalisation": false, "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], "hmacKey": "${KLSTrainingMagicLinkHmacKey}" - } } } ], From 66150bdec6900b2cb064c08cdc81690690e82ca3 Mon Sep 17 00:00:00 2001 From: Natasha Myers Date: Wed, 25 Jun 2025 09:28:35 +0100 Subject: [PATCH 300/403] LOPS3-366: Changed log to be dynamic --- runner/src/server/services/webhookService.ts | 2 +- yarn.lock | 73 -------------------- 2 files changed, 1 insertion(+), 74 deletions(-) diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index dbda8ac897..e6ad69dc05 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -60,7 +60,7 @@ export class WebhookService { return Name; } - console.log(res.statusCode, "status of the request is here"); + console.log(`Request status code: ${res.statusCode}`); const { reference } = JSON.parse(payload); diff --git a/yarn.lock b/yarn.lock index 12c016373c..a64e850345 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3679,13 +3679,6 @@ __metadata: languageName: node linkType: hard -"@prisma/debug@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/debug@npm:5.22.0" - checksum: ee263d933c3ab92e93aee78771e5040a510316d96ce69c64cfd65d21e59646b9c5a047446ce7965651563d001150ef763485474bd43ca8a6544ab7ce604d2ffa - languageName: node - linkType: hard - "@prisma/debug@npm:6.1.0": version: 6.1.0 resolution: "@prisma/debug@npm:6.1.0" @@ -3693,13 +3686,6 @@ __metadata: languageName: node linkType: hard -"@prisma/engines-version@npm:5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848": - version: 5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848 - resolution: "@prisma/engines-version@npm:5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848" - checksum: 16c46fb829616ed38b4f8039716076689db0e176f143cdafb32be121c3458647e3214eee37ec1b467df9d0d24be0a68fbada1f51609c16a511a629bae26f85e2 - languageName: node - linkType: hard - "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959": version: 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 resolution: "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959" @@ -3707,18 +3693,6 @@ __metadata: languageName: node linkType: hard -"@prisma/engines@npm:5.8.0": - version: 5.8.0 - resolution: "@prisma/engines@npm:5.8.0" - dependencies: - "@prisma/debug": 5.22.0 - "@prisma/engines-version": 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - "@prisma/fetch-engine": 5.22.0 - "@prisma/get-platform": 5.22.0 - checksum: b66d08f4291af401a1dc75f096bbd980383bf4334221e5dd6be67882a0a91661d994d4b80f94a683b13bbf9062412eb194263df2f7925d53d1e20bfc6c4ede73 - languageName: node - linkType: hard - "@prisma/engines@npm:6.1.0": version: 6.1.0 resolution: "@prisma/engines@npm:6.1.0" @@ -3731,17 +3705,6 @@ __metadata: languageName: node linkType: hard -"@prisma/fetch-engine@npm:5.8.0": - version: 5.8.0 - resolution: "@prisma/fetch-engine@npm:5.8.0" - dependencies: - "@prisma/debug": 5.22.0 - "@prisma/engines-version": 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - "@prisma/get-platform": 5.22.0 - checksum: d65def9fe4a86ef05041738d12cb730cc8b948379e11ac3e3fa2db08d5640a70467b623b4bb0d6d3f4da86c135f6c6da61867c1658eab430dd0e3939382d3a41 - languageName: node - linkType: hard - "@prisma/fetch-engine@npm:6.1.0": version: 6.1.0 resolution: "@prisma/fetch-engine@npm:6.1.0" @@ -3753,15 +3716,6 @@ __metadata: languageName: node linkType: hard -"@prisma/get-platform@npm:5.8.0": - version: 5.8.0 - resolution: "@prisma/get-platform@npm:5.8.0" - dependencies: - "@prisma/debug": 5.8.0 - checksum: 8caf4a6a255bc5ae9e1e88236ae50eb0fca691e3b74d34e85f6703c9cce3a625b7766ea7b2f2825050ace72a69dbdbbcf3abc17ce54e6e444f91b996d93659a8 - languageName: node - linkType: hard - "@prisma/get-platform@npm:6.1.0": version: 6.1.0 resolution: "@prisma/get-platform@npm:6.1.0" @@ -11081,16 +11035,6 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.3, fsevents@npm:^2.1.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - "fsevents@npm:^1.2.7": version: 1.2.13 resolution: "fsevents@npm:1.2.13" @@ -11102,11 +11046,9 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@2.3.3#~builtin, fsevents@patch:fsevents@^2.1.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": "fsevents@patch:fsevents@2.3.3#~builtin, fsevents@patch:fsevents@^2.1.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" dependencies: node-gyp: latest conditions: os=darwin @@ -17491,21 +17433,6 @@ __metadata: languageName: node linkType: hard -"prisma@npm:5.22.0": - version: 5.22.0 - resolution: "prisma@npm:5.22.0" - dependencies: - "@prisma/engines": 5.22.0 - fsevents: 2.3.3 - dependenciesMeta: - fsevents: - optional: true - bin: - prisma: build/index.js - checksum: 9789a8fa16db4ea5de89cc8420d498372f02d326359eb91bbed209fbca88f0539d63ca8d8ac297d37e51e24a3fc91eef75075dbf35980b2a01407448a6d416f9 - languageName: node - linkType: hard - "prisma@npm:^6.1.0": version: 6.1.0 resolution: "prisma@npm:6.1.0" From 2b7aa19f616771991c39d2088496e1071d3eede5 Mon Sep 17 00:00:00 2001 From: kitttang Date: Wed, 25 Jun 2025 14:01:43 +0100 Subject: [PATCH 301/403] disable back link on page after email confirmed --- runner/src/server/forms/kls-path-1.json | 1 + runner/src/server/forms/kls-training.json | 1 + 2 files changed, 2 insertions(+) diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-path-1.json index 3d10c75099..43ec3ae448 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-path-1.json @@ -738,6 +738,7 @@ { "path": "/which-organisation-do-you-work-for-DUPE", "title": "Which organisation do you work for?", + "disableBackLink": true, "components": [ { "name": "wyvXTj", diff --git a/runner/src/server/forms/kls-training.json b/runner/src/server/forms/kls-training.json index 446ec59541..f654ca4f70 100644 --- a/runner/src/server/forms/kls-training.json +++ b/runner/src/server/forms/kls-training.json @@ -82,6 +82,7 @@ { "path": "/training-request-part-1", "title": "Training request part 1", + "disableBackLink": true, "components": [ { "name": "sqQXGM", From 455d99713ce951a82c22b5d06a4b68e9fba65e92 Mon Sep 17 00:00:00 2001 From: Sully Date: Thu, 26 Jun 2025 01:25:11 +0100 Subject: [PATCH 302/403] bug-fix: Fix cookies banner issue - The cookie banner keeps reappearing, this happens on dev, staging and even in production! - After debugging, I found issues with acquiring the form name and have since this value is of little use from me looking, I believe setting a default version based on the form will suffice. --- runner/src/server/plugins/router.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runner/src/server/plugins/router.ts b/runner/src/server/plugins/router.ts index 6912eb2a5c..f086ee9cc4 100644 --- a/runner/src/server/plugins/router.ts +++ b/runner/src/server/plugins/router.ts @@ -149,6 +149,8 @@ export default { if (referrer) { redirectPath = new URL(referrer).pathname; } + + const cookieName = form?.name || `${url}Page`; return h.redirect(redirectPath).state( "cookies_policy", @@ -158,7 +160,7 @@ export default { essential: true, analytics: accept ? "on" : "off", usage: accept, - name: form.name, + name: cookieName, }, { isHttpOnly: false, From 18f8bad24ba5c6045340964841e9926f78c004c7 Mon Sep 17 00:00:00 2001 From: katrinatang-mudano Date: Thu, 26 Jun 2025 09:59:58 +0100 Subject: [PATCH 303/403] adding unauthenticated true to unapproved email page --- runner/src/server/forms/kls-training-magic-link.json | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index 4a9db9f9af..a8c2dcee2c 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -118,6 +118,7 @@ "backLinkFallback": "/kls-training-magic-link", "path": "/your-email-is-not-on-our-approved-list", "title": "Your email is not on our approved list", + "unauthenticated": true, "components": [ { "name": "GVrjNV", From 717831c2b72a2b50bd8aa135f2d9ed17e52dfc07 Mon Sep 17 00:00:00 2001 From: Kathryn Dale Date: Thu, 26 Jun 2025 15:48:56 +0100 Subject: [PATCH 304/403] Merge remote-tracking branch 'upstream/main' into fix/align-upstream --- README.md | 7 +- designer/package.json | 2 +- docs/runner/summary-details-transforms.md | 180 ++++++++++++++++++ model/package.json | 2 +- package.json | 2 +- runner/package.json | 2 +- runner/src/client/sass/_govuk.scss | 3 +- runner/src/client/sass/_upload-dialog.scss | 2 +- runner/src/client/sass/application.scss | 6 +- runner/src/client/sass/modal-dialog.scss | 2 +- runner/src/server/forms/test.json | 4 +- .../components/SelectionControlField.ts | 7 +- ...mmaryViewModel.detailsTransformationMap.ts | 3 + .../plugins/engine/models/SummaryViewModel.ts | 21 +- ...ViewModel.detailsTransformationMap.jest.ts | 85 +++++++++ .../models/__tests__/summaryViewModel.jest.ts | 3 + .../pageControllers/PageControllerBase.ts | 22 ++- .../RepeatingSectionSummaryPageController.ts | 54 ++++++ .../plugins/engine/pageControllers/helpers.ts | 2 + .../plugins/engine/pageControllers/index.ts | 1 + runner/src/server/plugins/views.ts | 4 +- runner/src/server/routes/public.ts | 13 +- .../server/transforms/summaryDetails/index.ts | 11 ++ .../server/transforms/summaryDetails/types.ts | 18 ++ .../views/help/accessibility-statement.html | 3 +- runner/src/server/views/help/cookies.html | 4 + runner/src/server/views/help/privacy.html | 2 +- .../views/help/terms-and-conditions.html | 4 + runner/src/server/views/layout.html | 38 +++- .../server/views/partials/summary-card.html | 40 ++++ .../server/views/partials/summary-row.html | 2 +- .../views/repeating-section-summary.html | 27 +++ runner/src/server/views/summary.html | 19 +- runner/test/cases/server/phase-banner.test.js | 4 +- yarn.lock | 96 ++-------- 35 files changed, 569 insertions(+), 126 deletions(-) create mode 100644 docs/runner/summary-details-transforms.md create mode 100644 runner/src/server/plugins/engine/models/SummaryViewModel.detailsTransformationMap.ts create mode 100644 runner/src/server/plugins/engine/models/__tests__/summaryViewModel.detailsTransformationMap.jest.ts create mode 100644 runner/src/server/plugins/engine/models/__tests__/summaryViewModel.jest.ts create mode 100644 runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts create mode 100644 runner/src/server/transforms/summaryDetails/index.ts create mode 100644 runner/src/server/transforms/summaryDetails/types.ts create mode 100644 runner/src/server/views/partials/summary-card.html create mode 100644 runner/src/server/views/repeating-section-summary.html diff --git a/README.md b/README.md index c0e87e9073..a6e5eb888c 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,16 @@ # XGov Digital Form Builder -[![Gitter](https://badges.gitter.im/XGovFormBuilder/Public.svg)](https://gitter.im/XGovFormBuilder/Public?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +## Support + +- Join the [community on slack](https://join.slack.com/t/xgov-digital-form-bld/shared_invite/zt-xn5ltztf-3_oBzZaziV4sCpDDOGuP6Q) +- Contact [support@cautionyourblast.com](mailto:support@cautionyourblast.com) if you are unable to join Slack in your organisation. ## contributions Issues and pull requests are welcome. Please check [CONTRIBUTING.md](./CONTRIBUTING.md) first! +## Context + This repository is a mono repo for - @xgovformbuilder/[runner](https://github.com/XGovFormBuilder/digital-form-builder/tree/main/runner) - Hapi server which can 'run' a form from a JSON file diff --git a/designer/package.json b/designer/package.json index b1d87db6d1..e784154a8d 100644 --- a/designer/package.json +++ b/designer/package.json @@ -116,7 +116,7 @@ "eslint-plugin-tsdoc": "^0.2.14", "file-loader": "^6.2.0", "flat": "5.0.2", - "govuk-frontend": "^4.9.0", + "govuk-frontend": "^4.10.0", "hoek": "^6.1.3", "html-webpack-plugin": "^4.5.2", "i18next-parser": "^3.3.0", diff --git a/docs/runner/summary-details-transforms.md b/docs/runner/summary-details-transforms.md new file mode 100644 index 0000000000..cd4cef9aa7 --- /dev/null +++ b/docs/runner/summary-details-transforms.md @@ -0,0 +1,180 @@ +# Summary details transforms + +In some cases, you may want to modify the data that is displayed in the summary details component. +This can be achieved by using transforms. Transforms allow you to manipulate the SummaryViewModel.details before they are rendered. + +Transforms are keyed by `FormModel.basePath`. In most cases, this will be filename of the form's JSON. + +Each transform is a function that takes the `SummaryViewModel.details` as an argument and returns the modified details. +Transform functions are given a deep _copy_ of details, rather than a reference to prevent accidental mutations. + +Transforms are placed in the `runner/src/server/transforms` directory. This is so that they can be easily replaced using the Docker `COPY` command. +They are imported by [`SummaryViewModel.detailsTransformationMap.ts`](./../../runner/src/server/plugins/engine/models/SummaryViewModel.detailsTransformationMap.ts), +which will either load the [source code transforms](./../../runner/src/server/transforms/summaryDetails/index.ts) checked into the repository, or the aforementioned replacement. + +## Configuring transforms + +Transforms can be configured in two ways depending on how you build the runner docker image. + +### Replace `runner/dist/server/transforms/summaryDetails` using the docker `COPY` command + +This is suited for organisations that do not need to modify the source code of the form runner. +[View an example of how to customise forms and views using docker only](https://github.com/XGovFormBuilder/form-builder-examples/tree/main/production-docker). + +This is the recommended approach if you are not using any custom code (i.e. using the "vanilla" features). Build times will be significantly faster since you do not need to compile any code. It also removes the risk of fork drift. + +> ⚠️ Warning: At a minimum, these transforms must be written in the commonjs format +> +> You may write your transforms in TypeScript, but they must be compiled to commonjs before being used in the form runner. + +1. Create the directory `transforms/summaryDetails` in your project + ``` + . + └── transforms + └── summaryDetails + └── index.js + ``` +2. Add an `index.js` file in the `summaryDetails` which exports the transformations, which is an object that is keyed by form basePath + + ```js + // transforms/summaryDetails/index.js + "use strict"; + + const summaryDetailsTransformations = { + "marriage-in-spain": (details) => { + // Replace section title with the partner's name + const partnerSection = details.find( + (section) => section.name === "partnerDetails" + ); + const partnersName = partnerSection.items.find( + (item) => item.name === "partnerName" + )?.value; + + const modifiedSections = details.map((section) => { + if (section.name === "partnerDetails") { + const copy = { ...section }; + copy.title = `Partner's Details (${partnersName})`; + return copy; + } + return section; + }); + + // Uppercase all the answers + return modifiedSections.map((section) => { + section.items = items.map((item) => { + return { ...item, value: item.value.toUpperCase() }; + }); + return section; + }); + }, + }; + + // A default export for the transformations are required (not named exports!) + module.exports = summaryDetailsTransformations; + ``` + +3. In the Dockerfile, copy the `summaryDetails` directory to the `runner/dist/server/transforms/summaryDetails` directory: + + ```dockerfile + ARG BASE_IMAGE_TAG="latest" + FROM ghcr.io/xgovformbuilder/digital-form-builder-runner:$BASE_IMAGE_TAG as base + ARG FORMS_DIR="forms" + WORKDIR /usr/src/app + RUN rm -r runner/dist/server/forms && rm -r runner/src + COPY $FORMS_DIR runner/dist/server/forms + COPY transforms/summaryDetails runner/dist/server/transforms/summaryDetails + + CMD [ "yarn", "runner", "start"] + ``` + +4. Build the Docker image and run it. The transformed summary details will appear when navigating to the summary page of the form. + +#### Reusing transforms across multiple forms + +To reuse the same transforms, or reduce the size of `summaryDetailsTransformations`, transforms can be split across multiple files. + +1. Create a new file for the transform that should be abstracted, for example `marriage.js`, the directory structure should look like this: + ``` + . + └── transforms + └── summaryDetails + ├── index.js + └── marriage.js + ``` +2. In the new transform file (in this example `marriage.js`), create add the transform and default export it in the commonjs format: + + ```js + // transforms/summaryDetails/marriage.js + "use strict"; + + function marriageTransform(details) { + // modify details + } + + module.exports = marriageTransform; + ``` + +3. In the `index.js` file, import the transform and add it to the `summaryDetailsTransformations` object: + ```js + // transforms/summaryDetails/index.js + "use strict"; + const marriageTransform = require("./marriage"); + const summaryDetailsTransformations = { + "marriage-in-spain": marriageTransform, + "marriage-in-france": marriageTransform, + feedback: (details) => {}, + }; + ``` + +### Write transforms in the form runner source code + +This is suited for organisations that use a fork XGovFormBuilder, and already have significant custom source code. +These organisations typically build their docker images from source code. + +For this method, you may write your transforms in TypeScript, and they will be compiled to commonjs when the form runner is built. +You will also be able to unit test transforms since forks have the additional tooling to run tests. + +1. Write the transforms in `runner/src/server/transforms/summaryDetails/index.ts`. The boilerplate is provided, you only need to update `summaryDetailsTransformations` + + ```ts + import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; + export { SummaryDetailsTransformationMap }; + + const summaryDetailsTransformations: SummaryDetailsTransformationMap = { + "marriage-in-spain": (details: any[]) => { + //.. + }, + }; + module.exports = summaryDetailsTransformations; + ``` + +2. (Optional) Split the transforms across multiple files + + 1. create a new file for the transform that should be abstracted, for example `marriage.ts`, and export the transform in the commonjs format: + + ```ts + // runner/src/server/transforms/summaryDetails/marriage.ts + import { SummaryDetailsTransformation } from "server/transforms/summaryDetails/types"; + + export const marriageTransform: SummaryDetailsTransformation = ( + details + ) => { + // modify details + }; + ``` + + 2. In the `index.ts` file, import the transform and add it to the `summaryDetailsTransformations` object: + + ```ts + // runner/src/server/transforms/summaryDetails/index.ts + import { marriageTransform } from "./marriage"; + + import { SummaryDetailsTransformation } from "server/transforms/summaryDetails/types"; + const summaryDetailsTransformations = { + "marriage-in-spain": marriageTransform, + "marriage-in-france": marriageTransform, + feedback: (details) => {}, + }; + ``` + +3. (Optional) Write unit tests for transforms, create a new file in `runner/src/server/transforms/summaryDetails/__tests__/marriage.jest.ts` and write the tests with Jest. diff --git a/model/package.json b/model/package.json index 3273e797dc..63596410aa 100644 --- a/model/package.json +++ b/model/package.json @@ -31,7 +31,7 @@ "@babel/runtime": "^7.23.3", "boom": "7.3.0", "btoa": "^1.2.1", - "govuk-frontend": "^4.9.0", + "govuk-frontend": "^4.10.0", "joi": "17.2.1" }, "devDependencies": { diff --git a/package.json b/package.json index 6e342fb95d..830bbb161c 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ }, "dependencies": { "@babel/runtime": "^7.21.0", - "govuk-frontend": "^4.9.0", + "govuk-frontend": "^4.10.0", "hmpo-components": "^5.2.1" }, "resolutions": { diff --git a/runner/package.json b/runner/package.json index 445736da43..6147b31b88 100644 --- a/runner/package.json +++ b/runner/package.json @@ -61,7 +61,7 @@ "dotenv": "8.2.0", "expr-eval": "^2.0.2", "google-libphonenumber": "^3.2.34", - "govuk-frontend": "^4.9.0", + "govuk-frontend": "^5.10.2", "hapi-pino": "8.0.0", "hapi-pulse": "3.0.0", "hapi-rate-limit": "4.1.0", diff --git a/runner/src/client/sass/_govuk.scss b/runner/src/client/sass/_govuk.scss index a6d659881b..d7ee8a661c 100644 --- a/runner/src/client/sass/_govuk.scss +++ b/runner/src/client/sass/_govuk.scss @@ -1,3 +1,2 @@ $govuk-global-styles: true; - -@import "node_modules/govuk-frontend/govuk/all"; +@import "./../../../node_modules/govuk-frontend/dist/govuk/all"; diff --git a/runner/src/client/sass/_upload-dialog.scss b/runner/src/client/sass/_upload-dialog.scss index 8b98f9f0eb..a4b299e37f 100644 --- a/runner/src/client/sass/_upload-dialog.scss +++ b/runner/src/client/sass/_upload-dialog.scss @@ -1,4 +1,4 @@ -@import "../../../../node_modules/govuk-frontend/govuk/helpers/colour"; +@import "./../../../node_modules/govuk-frontend/dist/govuk/helpers/colour"; .upload-dialog { display: none; diff --git a/runner/src/client/sass/application.scss b/runner/src/client/sass/application.scss index efa1156e43..8b5d9529fc 100644 --- a/runner/src/client/sass/application.scss +++ b/runner/src/client/sass/application.scss @@ -1,5 +1,5 @@ @import "govuk"; -@import "node_modules/accessible-autocomplete/src/autocomplete"; +@import "./../../../node_modules/accessible-autocomplete/src/autocomplete"; @import "hmpo"; @import "modal-dialog"; @import "upload-dialog"; @@ -102,6 +102,10 @@ } } +.govuk-summary-card .govuk-summary-list__actions { + display: none; +} + .govuk-radios__conditional--hidden { display: none; } diff --git a/runner/src/client/sass/modal-dialog.scss b/runner/src/client/sass/modal-dialog.scss index a57cbc4a8a..834800c3af 100644 --- a/runner/src/client/sass/modal-dialog.scss +++ b/runner/src/client/sass/modal-dialog.scss @@ -1,4 +1,4 @@ -@import "node_modules/govuk-frontend/govuk/all"; +@import "node_modules/govuk-frontend/dist/govuk/all"; .modal-dialog { // Don't display modal if user doesn't have js. Can be overriden with .modal-dialog--no-js-persistent display: none; diff --git a/runner/src/server/forms/test.json b/runner/src/server/forms/test.json index eb4d6364b9..7f93c9a7aa 100644 --- a/runner/src/server/forms/test.json +++ b/runner/src/server/forms/test.json @@ -464,7 +464,9 @@ "title": "Applicant 4" } ], - "phaseBanner": {}, + "phaseBanner": { + "phase": "beta" + }, "fees": [], "payApiKey": "", "outputs": [ diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index 855f1eaaf3..ddf87de927 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -129,8 +129,13 @@ export class SelectionControlField extends ListFormComponent { const options: any = this.options; const viewModel = super.getViewModel(formData, errors); + const { label } = viewModel; + viewModel.fieldset = { - legend: viewModel.label, + legend: { + ...label, + classes: "govuk-fieldset__legend govuk-fieldset__legend--s", + }, }; viewModel.items = items.map((item: any) => { diff --git a/runner/src/server/plugins/engine/models/SummaryViewModel.detailsTransformationMap.ts b/runner/src/server/plugins/engine/models/SummaryViewModel.detailsTransformationMap.ts new file mode 100644 index 0000000000..4d72bf5462 --- /dev/null +++ b/runner/src/server/plugins/engine/models/SummaryViewModel.detailsTransformationMap.ts @@ -0,0 +1,3 @@ +import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails"; + +export const summaryDetailsTransformationMap: SummaryDetailsTransformationMap = require("../../../transforms/summaryDetails"); diff --git a/runner/src/server/plugins/engine/models/SummaryViewModel.ts b/runner/src/server/plugins/engine/models/SummaryViewModel.ts index 8ace0d29a3..755654ec96 100644 --- a/runner/src/server/plugins/engine/models/SummaryViewModel.ts +++ b/runner/src/server/plugins/engine/models/SummaryViewModel.ts @@ -10,6 +10,10 @@ import { FeesModel } from "server/plugins/engine/models/submission"; import { HapiRequest } from "src/server/types"; import { InitialiseSessionOptions } from "server/plugins/initialiseSession/types"; import { Outputs } from "server/plugins/engine/models/submission/Outputs"; +import { summaryDetailsTransformationMap } from "./SummaryViewModel.detailsTransformationMap"; + +import pino from "pino"; +const logger = pino().child({ name: "SummaryViewModel" }); /** * TODO - extract submission behaviour dependencies from the viewmodel @@ -104,8 +108,22 @@ export class SummaryViewModel { } } - this.result = result; this.details = details; + + const transformDetails = summaryDetailsTransformationMap[model.basePath]; + if (transformDetails) { + /** + * Clone the details to avoid mutating the original object. + */ + const clonedDetails = clone(details); + try { + this.details = transformDetails(clonedDetails); + } catch (err) { + logger.error({ err }, "Error transforming summary"); + } + } + + this.result = result; this.state = state; this.value = result.value; this.callback = state.callback; @@ -152,6 +170,7 @@ export class SummaryViewModel { state: FormSubmissionState, relevantPages ) { + // TODO: add more declarative types const details: object[] = []; [undefined, ...model.sections].forEach((section) => { diff --git a/runner/src/server/plugins/engine/models/__tests__/summaryViewModel.detailsTransformationMap.jest.ts b/runner/src/server/plugins/engine/models/__tests__/summaryViewModel.detailsTransformationMap.jest.ts new file mode 100644 index 0000000000..34f809bcb2 --- /dev/null +++ b/runner/src/server/plugins/engine/models/__tests__/summaryViewModel.detailsTransformationMap.jest.ts @@ -0,0 +1,85 @@ +import { FormModel, SummaryViewModel } from "server/plugins/engine/models"; +import { summaryDetailsTransformationMap } from "../SummaryViewModel.detailsTransformationMap"; + +jest.mock("../SummaryViewModel.detailsTransformationMap", () => ({ + summaryDetailsTransformationMap: { + "svm-test": jest.fn((value) => ({ ...value, transformed: true })), + }, +})); + +afterEach(() => { + jest.clearAllMocks(); +}); + +test("it transforms the details if a transformation exists", () => { + const basePath = "svm-test"; + const formModel = new FormModel(formDef, { basePath }); + + const summaryViewModel = new SummaryViewModel( + "summary", + formModel, + { + favouriteEgg: "scrambled", + }, + { query: jest.fn() } + ); + + const details = summaryViewModel.details; + + expect(details[0].items[0].title).toStrictEqual( + "What is your favourite egg?" + ); + expect(details[0].items[0].value).toStrictEqual("scrambled"); + + expect(summaryDetailsTransformationMap["svm-test"]).toHaveBeenCalled(); + expect(details.transformed).toStrictEqual(true); +}); + +test("it does not transform the details if a transformation does not exist", () => { + const basePath = "some-other-path"; + const formModel = new FormModel(formDef, { basePath }); + + const summaryViewModel = new SummaryViewModel( + "summary", + formModel, + { + favouriteEgg: "scrambled", + }, + { query: jest.fn() } + ); + const details = summaryViewModel.details; + expect(summaryDetailsTransformationMap["svm-test"]).not.toHaveBeenCalled(); + expect(summaryDetailsTransformationMap[basePath]).toBeUndefined(); + expect(details[0].items[0].value).toStrictEqual("scrambled"); + expect(details.transformed).toBeUndefined(); +}); + +const formDef = { + startPage: "/first-page", + pages: [ + { + title: "First page", + path: "/first-page", + components: [ + { + type: "TextField", + name: "favouriteEgg", + title: "What is your favourite egg?", + }, + ], + next: [ + { + path: "/summary", + }, + ], + }, + { + title: "summary", + path: "/summary", + controller: "SummaryPageController", + }, + ], + sections: [], + lists: [], + conditions: [], +}; diff --git a/runner/src/server/plugins/engine/models/__tests__/summaryViewModel.jest.ts b/runner/src/server/plugins/engine/models/__tests__/summaryViewModel.jest.ts new file mode 100644 index 0000000000..c4b4cda442 --- /dev/null +++ b/runner/src/server/plugins/engine/models/__tests__/summaryViewModel.jest.ts @@ -0,0 +1,3 @@ +/** + * TODO: add tests for SummaryViewModel + */ diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index fcdb2f07d3..bdf1b8685b 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -64,6 +64,7 @@ export class PageControllerBase { hasFormComponents: boolean; hasConditionalFormComponents: boolean; backLinkFallback?: string; + details?: any; disableBackLink?: boolean; // TODO: pageDef type @@ -89,9 +90,7 @@ export class PageControllerBase { this.section = model.sections?.find( (section) => section.name === pageDef.section ); - - this.sectionForExitJourneySummaryPages = - pageDef.sectionForExitJourneySummaryPages; + this.sectionForExitJourneySummaryPages = pageDef.sectionForExitJourneySummaryPages; this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; this.sectionForEndSummaryPages = pageDef.sectionForEndSummaryPages; this.sidebarContent = pageDef.sidebarContent; @@ -153,6 +152,7 @@ export class PageControllerBase { startPage?: HapiResponseObject; backLink?: string; phaseTag?: string | undefined; + details?: any; } { let showTitle = true; let pageTitle = this.title; @@ -177,14 +177,17 @@ export class PageControllerBase { if (singleFormComponent && singleFormComponentIsFirst) { const label: any = singleFormComponent.model.label; - if (!this.disableSingleComponentAsHeading) { if (pageTitle) { label.text = pageTitle; } + if (singleFormComponent.model?.fieldset) { + singleFormComponent.model.fieldset.legend = label; + } + label.isPageHeading = true; - label.classes = "govuk-label--l"; + label.classes = "govuk-fieldset__legend--l"; pageTitle = pageTitle || label.text; showTitle = false; } @@ -199,6 +202,7 @@ export class PageControllerBase { components, errors, isStartPage: false, + details: this.details || undefined, }; } @@ -664,7 +668,7 @@ export class PageControllerBase { }); formResult.errors = Object.is(formResult.errors, null) - ? { titleText: "There is a problem" } + ? { titleText: "Fix the following errors" } : formResult.errors; formResult.errors.errorList = reformattedErrors; } @@ -691,7 +695,7 @@ export class PageControllerBase { }); formResult.errors = Object.is(formResult.errors, null) - ? { titleText: "There is a problem" } + ? { titleText: "Fix the following errors" } : formResult.errors; formResult.errors.errorList = reformattedErrors; } @@ -915,7 +919,7 @@ export class PageControllerBase { } get errorSummaryTitle() { - return "There is a problem"; + return "Fix the following errors"; } /** @@ -963,7 +967,7 @@ export class PageControllerBase { private renderWithErrors(request, h, payload, num, progress, errors) { const viewModel = this.getViewModel(payload, num, errors); - if (this.disableBackLink) { + if (this.disableBackLink) { viewModel.backLink = undefined; } else { viewModel.backLink = progress[progress.length - 2] ?? this.backLinkFallback; diff --git a/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts new file mode 100644 index 0000000000..df2360f58b --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts @@ -0,0 +1,54 @@ +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; + +/** + * RepeatingSectionSummaryPageController is for pages summarising a set of sections + */ +export class RepeatingSectionSummaryPageController extends PageController { + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const { remove } = request.query; + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const noInt = (str: string) => str.replace(/\d+/g, ""); + const int = (str: string) => parseInt(str.replace(/^\D+/g, "")); + + const { title, model } = this; + const summary = new SummaryViewModel(title, model, state, request); + const summaryFiltered = summary.details.filter( + (detail) => + detail.title && + detail.title.match(new RegExp(`${title} \\d`)) && + detail.items[0].value + ); + + if (remove && state[remove] && summaryFiltered.length !== 1) { + const newState = {}; + Object.entries(state).forEach(([key, value]) => { + if (key.includes(noInt(remove))) { + const nextSection = state[noInt(key) + (int(key) + 1)]; + if (int(key) < int(remove)) newState[key] = value; + else if (nextSection) newState[key] = nextSection; + else newState[key] = null; + } + }); + await cacheService.mergeState(request, newState); + + if (int(this.path) === summaryFiltered.length) { + return h.redirect( + `/${this.model.basePath}${noInt(this.path)}${int(this.path) - 1}` + ); + } + return h.redirect(`/${this.model.basePath}${this.path}`); + } + + this.details = summaryFiltered; + return super.makeGetRouteHandler()(request, h); + }; + } + + get viewName() { + return "repeating-section-summary"; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index 113f8c066a..151fe998ef 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -11,6 +11,7 @@ import { RepeatingFieldPageController } from "./RepeatingFieldPageController"; import { Page } from "@xgovformbuilder/model"; import { UploadPageController } from "server/plugins/engine/pageControllers/UploadPageController"; import { MultiStartPageController } from "server/plugins/engine/pageControllers/MultiStartPageController"; +import { RepeatingSectionSummaryPageController } from "./RepeatingSectionSummaryPageController"; import { CheckpointSummaryPageController } from "src/server/plugins/engine/pageControllers/CheckpointSummaryPageController"; import { MagicLinkFirstSubmitPageController } from "./MagicLinkFirstSubmitPageController"; import { MagicLinkSecondSubmitPageController } from "./MagicLinkSecondSubmitPageController"; @@ -31,6 +32,7 @@ const PageControllers = { RepeatingFieldPageController, UploadPageController, MultiStartPageController, + RepeatingSectionSummaryPageController, CheckpointSummaryPageController, MagicLinkFirstSubmitPageController, MagicLinkSecondSubmitPageController, diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index c39b75d02c..ded8e87b9a 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -5,6 +5,7 @@ export { StartDatePageController } from "./StartDatePageController"; export { StartPageController } from "./StartPageController"; export { SummaryPageController } from "./SummaryPageController"; export { PageControllerBase } from "./PageControllerBase"; +export { RepeatingSectionSummaryPageController } from "./RepeatingSectionSummaryPageController"; export { getPageController, controllerNameFromPath } from "./helpers"; export { CheckpointSummaryPageController } from "./CheckpointSummaryPageController"; export { MagicLinkController } from "./MagicLinkController"; diff --git a/runner/src/server/plugins/views.ts b/runner/src/server/plugins/views.ts index a554a0682f..d970044350 100644 --- a/runner/src/server/plugins/views.ts +++ b/runner/src/server/plugins/views.ts @@ -56,8 +56,8 @@ export default { */ `${path.join(__dirname, "..", "views")}`, `${path.join(__dirname, "engine", "views")}`, - `${path.dirname(resolve.sync("govuk-frontend", { basedir }))}`, - `${path.dirname(resolve.sync("govuk-frontend", { basedir }))}/components`, + `${path.dirname(resolve.sync("govuk-frontend"))}`, + `${path.dirname(resolve.sync("govuk-frontend"))}/components`, `${path.dirname(resolve.sync("hmpo-components"))}/components`, ], isCached: !config.isDev, diff --git a/runner/src/server/routes/public.ts b/runner/src/server/routes/public.ts index 97f3527535..e3d17a858f 100644 --- a/runner/src/server/routes/public.ts +++ b/runner/src/server/routes/public.ts @@ -1,7 +1,13 @@ import path from "path"; const runnerFolder = path.join(__dirname, "..", "..", ".."); -const rootNodeModules = path.join(runnerFolder, "..", "node_modules"); +const govukFolder = path.join( + runnerFolder, + "node_modules", + "govuk-frontend", + "dist", + "govuk" +); export default [ { @@ -13,8 +19,9 @@ export default [ path: [ path.join(runnerFolder, "public", "static"), path.join(runnerFolder, "public", "build"), - path.join(rootNodeModules, "govuk-frontend", "govuk"), - path.join(rootNodeModules, "govuk-frontend", "govuk", "assets"), + govukFolder, + path.join(govukFolder, "assets"), + path.join(govukFolder, "assets", "rebrand"), path.join( runnerFolder, "node_modules", diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts new file mode 100644 index 0000000000..9bfed44a4e --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -0,0 +1,11 @@ +"use strict"; + +import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; +export { SummaryDetailsTransformationMap }; + +/** + * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) + */ +const summaryDetailsTransformations: SummaryDetailsTransformationMap = {}; + +module.exports = summaryDetailsTransformations; diff --git a/runner/src/server/transforms/summaryDetails/types.ts b/runner/src/server/transforms/summaryDetails/types.ts new file mode 100644 index 0000000000..026bd4d91e --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/types.ts @@ -0,0 +1,18 @@ +import { FormModel } from "server/plugins/engine/models"; + +type TransformFunction =
    (value: Details) => Details; + +/** + * This is a Record of FormModel basePath to transformation function, + * e.g. + * ``` + * { + * // test.json basePath will be "test" + * "test": (value) => value, + * } + * ``` + */ +export type SummaryDetailsTransformationMap = Record< + FormModel["basePath"], + TransformFunction +>; diff --git a/runner/src/server/views/help/accessibility-statement.html b/runner/src/server/views/help/accessibility-statement.html index bcf537be82..e6c171a79f 100644 --- a/runner/src/server/views/help/accessibility-statement.html +++ b/runner/src/server/views/help/accessibility-statement.html @@ -1,7 +1,7 @@ {% extends 'layout.html' %} {% block pageTitle %} - GOV.UK - Accessibility Statement + Accessibility Statement – {{ name if name else serviceName }} {% endblock %} {% block content %} @@ -10,7 +10,6 @@

    Accessibility Statement

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eget volutpat tortor. Duis placerat ornare ipsum, eget molestie arcu tincidunt eget. Nam luctus arcu eu pulvinar mattis. Sed lobortis venenatis quam vel semper. Nunc lacinia augue eu nisl placerat, quis dignissim diam rutrum. Vestibulum sed leo pellentesque, gravida nibh at, consequat purus. Proin ultrices, arcu ac cursus accumsan, tellus mauris tincidunt erat, quis pellentesque sapien tortor sit amet erat.

    diff --git a/runner/src/server/views/help/cookies.html b/runner/src/server/views/help/cookies.html index 7c9d033632..cedca02ee8 100644 --- a/runner/src/server/views/help/cookies.html +++ b/runner/src/server/views/help/cookies.html @@ -2,6 +2,10 @@ {% from "radios/macro.njk" import govukRadios %} {% from "button/macro.njk" import govukButton %} +{% block pageTitle %} + Cookies – {{ name if name else serviceName }} +{% endblock %} + {% block content %}
    diff --git a/runner/src/server/views/help/privacy.html b/runner/src/server/views/help/privacy.html index 1bae2ceafa..458d7a8e56 100644 --- a/runner/src/server/views/help/privacy.html +++ b/runner/src/server/views/help/privacy.html @@ -1,7 +1,7 @@ {% extends "layout.html" %} {% block pageTitle %} - Privacy Notice + Privacy Notice – {{ name if name else serviceName }} {% endblock %} {% block content %} diff --git a/runner/src/server/views/help/terms-and-conditions.html b/runner/src/server/views/help/terms-and-conditions.html index 60144ec7a0..5f76f6e7f1 100644 --- a/runner/src/server/views/help/terms-and-conditions.html +++ b/runner/src/server/views/help/terms-and-conditions.html @@ -1,5 +1,9 @@ {% extends 'layout.html' %} +{% block pageTitle %} + Terms and conditions – {{ name if name else serviceName }} +{% endblock %} + {% block content %}
    diff --git a/runner/src/server/views/layout.html b/runner/src/server/views/layout.html index ef75e05faa..9fb5fa931c 100644 --- a/runner/src/server/views/layout.html +++ b/runner/src/server/views/layout.html @@ -1,3 +1,4 @@ +{% set govukRebrand = true %} {% extends "template.njk" %} {% from "back-link/macro.njk" import govukBackLink %} @@ -5,6 +6,18 @@ {% from "phase-banner/macro.njk" import govukPhaseBanner %} {% from "skip-link/macro.njk" import govukSkipLink -%} {% from "cookie-banner/macro.njk" import govukCookieBanner %} +{% from "service-navigation/macro.njk" import govukServiceNavigation %} + +{% block headIcons %} +{# TODO: remove this block when rebrand assets are no longer in /rebrand (likely in v5 upgrade) #} + + + + + +{% endblock %} + + {% block head %} @@ -69,7 +82,7 @@ {% endblock %} {% block pageTitle %} - {{ pageTitle }} + {{ pageTitle }} – {{ name if name else serviceName }} {% endblock %} {% block skipLink %} @@ -84,11 +97,17 @@ {{ govukHeader({ homepageUrl: "https://gov.uk", containerClasses: "govuk-width-container", - serviceName: name if name else serviceName, - serviceUrl: serviceStartPage, - navigation: navigation, - useTudorCrown: true -}) }} + useTudorCrown: true, + rebrand: true + }) + }} + {{ govukServiceNavigation({ + serviceName: name if name else serviceName, + serviceUrl: serviceStartPage, + navigation: navigation if navigation, + rebrand: true + }) + }} {% endblock %} @@ -115,14 +134,14 @@ {% if feedbackLink %} {{ govukPhaseBanner({ tag: { - text: phaseTag + text: phaseTag | title }, html: 'This is a new service – your feedback will help us to improve it.' }) }} {% else %} {{ govukPhaseBanner({ tag: { - text: phaseTag + text: phaseTag | title } }) }} {% endif %} @@ -145,7 +164,7 @@

    Default page template

    {% include "partials/modal-dialog.html" %} - + @@ -172,6 +191,7 @@

    Default page template

    {% block footer %} {{ govukFooter({ + rebrand: true, meta: { items: [{ href: 'privacy', diff --git a/runner/src/server/views/partials/summary-card.html b/runner/src/server/views/partials/summary-card.html new file mode 100644 index 0000000000..c7649d9684 --- /dev/null +++ b/runner/src/server/views/partials/summary-card.html @@ -0,0 +1,40 @@ +{% from "./summary-row.html" import summaryRow %} {% macro summaryCard(data, hideRemove) +%} {% set isRepeatableSection = (data.items[0] | isArray) %} + +
    + {% if not isRepeatableSection %} +
    +

    {{ data.title }}

    + +
    + {% endif %} + +
    +
    + {% for item in data.items %} {% if not hide %} {%- if item | isArray %} +

    + {{ data.title }} +

    + {% for repeated in item %} + {{ summaryRow(repeated) }} + {% endfor %} {% else %} + {{ summaryRow(item) }} + {% endif %} {% endif %} {% endfor %} +
    +
    +
    + +{% endmacro %} diff --git a/runner/src/server/views/partials/summary-row.html b/runner/src/server/views/partials/summary-row.html index be137fa78a..04bf91e26c 100644 --- a/runner/src/server/views/partials/summary-row.html +++ b/runner/src/server/views/partials/summary-row.html @@ -8,7 +8,7 @@ {% if item.type == 'FileUploadField' %} {{ item.filename if item.filename else "Uploaded" }} {% else %} - {{item.value}} + {{ item.value | striptags(true) | escape | nl2br }} {% endif %} {% else %} Not supplied diff --git a/runner/src/server/views/repeating-section-summary.html b/runner/src/server/views/repeating-section-summary.html new file mode 100644 index 0000000000..dc64dde1ca --- /dev/null +++ b/runner/src/server/views/repeating-section-summary.html @@ -0,0 +1,27 @@ +{% extends 'layout.html' %} + +{% block templateImports %} + {{ super() }} +{% endblock %}} + +{% from "error-summary/macro.njk" import govukErrorSummary %} +{% from "partials/components.html" import componentList with context %} +{% from "partials/summary-card.html" import summaryCard %} + +{% block content %} +
    +
    + {% if errors %} + {{ govukErrorSummary(errors) }} + {% endif %} + + {% include "partials/heading.html" %} + + {% for detail in details %} + {{ summaryCard(detail) }} + {% endfor %} + + {% include "partials/form.html" %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/summary.html b/runner/src/server/views/summary.html index cbdf3a0fb2..f0377f26a7 100644 --- a/runner/src/server/views/summary.html +++ b/runner/src/server/views/summary.html @@ -25,7 +25,20 @@

    {% endif %} {% for detail in details %} - {{ summaryDetail(detail) }} + {% if detail.card %} + {{ summaryCard(detail, true) }} + {% if not details[loop.index].card %} + {% set splitDash = detail.items[0].pageId.split("-") %} + {% set toAdd = ["added", splitDash[splitDash.length - 1]] %} + {% set addOrRemoveLink = splitDash.slice(0, -1).concat(toAdd).join("-") %} + + + Add or remove {{ detail.title.split(" ").slice(0, -1).join(" ") | lower }} + + {% endif %} + {% else %} + {{ summaryDetail(detail) }} + {% endif %} {% endfor %} {% if fees and fees.details|length %} @@ -44,8 +57,8 @@

    Fees

    {%if declaration %} -

    Declaration

    - {{ declaration | safe }} +

    Declaration

    + {{ declaration | safe }}
    {% if declarationError %} diff --git a/runner/test/cases/server/phase-banner.test.js b/runner/test/cases/server/phase-banner.test.js index a08cba1d2e..d3e8c3c55a 100644 --- a/runner/test/cases/server/phase-banner.test.js +++ b/runner/test/cases/server/phase-banner.test.js @@ -32,7 +32,7 @@ suite(`Phase banner`, () => { const $ = cheerio.load(response.payload); expect($(".govuk-phase-banner__content__tag").text().trim()).to.equal( - "beta" + "Beta" ); }); @@ -54,7 +54,7 @@ suite(`Phase banner`, () => { const $ = cheerio.load(response.payload); expect($(".govuk-phase-banner__content__tag").text().trim()).to.equal( - "alpha" + "Alpha" ); }); diff --git a/yarn.lock b/yarn.lock index 12c016373c..a6853cf61b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3679,13 +3679,6 @@ __metadata: languageName: node linkType: hard -"@prisma/debug@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/debug@npm:5.22.0" - checksum: ee263d933c3ab92e93aee78771e5040a510316d96ce69c64cfd65d21e59646b9c5a047446ce7965651563d001150ef763485474bd43ca8a6544ab7ce604d2ffa - languageName: node - linkType: hard - "@prisma/debug@npm:6.1.0": version: 6.1.0 resolution: "@prisma/debug@npm:6.1.0" @@ -3693,13 +3686,6 @@ __metadata: languageName: node linkType: hard -"@prisma/engines-version@npm:5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848": - version: 5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848 - resolution: "@prisma/engines-version@npm:5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848" - checksum: 16c46fb829616ed38b4f8039716076689db0e176f143cdafb32be121c3458647e3214eee37ec1b467df9d0d24be0a68fbada1f51609c16a511a629bae26f85e2 - languageName: node - linkType: hard - "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959": version: 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 resolution: "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959" @@ -3707,18 +3693,6 @@ __metadata: languageName: node linkType: hard -"@prisma/engines@npm:5.8.0": - version: 5.8.0 - resolution: "@prisma/engines@npm:5.8.0" - dependencies: - "@prisma/debug": 5.22.0 - "@prisma/engines-version": 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - "@prisma/fetch-engine": 5.22.0 - "@prisma/get-platform": 5.22.0 - checksum: b66d08f4291af401a1dc75f096bbd980383bf4334221e5dd6be67882a0a91661d994d4b80f94a683b13bbf9062412eb194263df2f7925d53d1e20bfc6c4ede73 - languageName: node - linkType: hard - "@prisma/engines@npm:6.1.0": version: 6.1.0 resolution: "@prisma/engines@npm:6.1.0" @@ -3731,17 +3705,6 @@ __metadata: languageName: node linkType: hard -"@prisma/fetch-engine@npm:5.8.0": - version: 5.8.0 - resolution: "@prisma/fetch-engine@npm:5.8.0" - dependencies: - "@prisma/debug": 5.22.0 - "@prisma/engines-version": 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - "@prisma/get-platform": 5.22.0 - checksum: d65def9fe4a86ef05041738d12cb730cc8b948379e11ac3e3fa2db08d5640a70467b623b4bb0d6d3f4da86c135f6c6da61867c1658eab430dd0e3939382d3a41 - languageName: node - linkType: hard - "@prisma/fetch-engine@npm:6.1.0": version: 6.1.0 resolution: "@prisma/fetch-engine@npm:6.1.0" @@ -3753,15 +3716,6 @@ __metadata: languageName: node linkType: hard -"@prisma/get-platform@npm:5.8.0": - version: 5.8.0 - resolution: "@prisma/get-platform@npm:5.8.0" - dependencies: - "@prisma/debug": 5.8.0 - checksum: 8caf4a6a255bc5ae9e1e88236ae50eb0fca691e3b74d34e85f6703c9cce3a625b7766ea7b2f2825050ace72a69dbdbbcf3abc17ce54e6e444f91b996d93659a8 - languageName: node - linkType: hard - "@prisma/get-platform@npm:6.1.0": version: 6.1.0 resolution: "@prisma/get-platform@npm:6.1.0" @@ -5009,7 +4963,7 @@ __metadata: flagg: ^1.1.2 flat: 5.0.2 focus-trap-react: ^8.9.2 - govuk-frontend: ^4.9.0 + govuk-frontend: ^4.10.0 hapi-pino: ^8.0.1 hoek: ^6.1.3 html-webpack-plugin: ^4.5.2 @@ -5104,7 +5058,7 @@ __metadata: eslint-plugin-import: ^2.25.4 eslint-plugin-tsdoc: ^0.2.14 expr-eval: 2.0.2 - govuk-frontend: ^4.9.0 + govuk-frontend: ^4.10.0 hmpo-components: 5.2.1 jest: ^29.2.0 joi: 17.2.1 @@ -5206,7 +5160,7 @@ __metadata: flat: 5.0.2 form-data: ^4.0.0 google-libphonenumber: ^3.2.34 - govuk-frontend: ^4.9.0 + govuk-frontend: ^5.10.2 hapi-pino: 8.0.0 hapi-pulse: 3.0.0 hapi-rate-limit: 4.1.0 @@ -8664,7 +8618,7 @@ __metadata: eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^4.2.1 eslint-plugin-tsdoc: ^0.2.14 - govuk-frontend: ^4.9.0 + govuk-frontend: ^4.10.0 hmpo-components: ^5.2.1 husky: ^4.3.0 lint-staged: ^10.4.2 @@ -11081,16 +11035,6 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.3, fsevents@npm:^2.1.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - "fsevents@npm:^1.2.7": version: 1.2.13 resolution: "fsevents@npm:1.2.13" @@ -11102,11 +11046,9 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@2.3.3#~builtin, fsevents@patch:fsevents@^2.1.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": "fsevents@patch:fsevents@2.3.3#~builtin, fsevents@patch:fsevents@^2.1.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" dependencies: node-gyp: latest conditions: os=darwin @@ -11465,10 +11407,17 @@ __metadata: languageName: node linkType: hard -"govuk-frontend@npm:^4.9.0": - version: 4.9.0 - resolution: "govuk-frontend@npm:4.9.0" - checksum: f70cf65d91e00669b6b818e82b343df8dc40fef1ffdda02ad4394291bdb184aca3593e610f5399ee01b1c921a5226f13cd537606a7755a4e882864852fd2e18c +"govuk-frontend@npm:^4.10.0": + version: 4.10.0 + resolution: "govuk-frontend@npm:4.10.0" + checksum: 2c0b0be3b6661173839057bd025bda181d99f4d93678be4e9640c67bfb4a63a4f7a366fdbde3f1c634dd45ca48a3dc4c095e625af45e4b30d2c18378a2e5857c + languageName: node + linkType: hard + +"govuk-frontend@npm:^5.10.2": + version: 5.10.2 + resolution: "govuk-frontend@npm:5.10.2" + checksum: d7b9c788a4dee8ecc0dbb0b6ed0866e97822af8b3f7390824626835e920905c48e40f2e250505dc2d9bb66ad9efc96abffc63bb5cfa68f4e4e6c29f4e910321b languageName: node linkType: hard @@ -17491,21 +17440,6 @@ __metadata: languageName: node linkType: hard -"prisma@npm:5.22.0": - version: 5.22.0 - resolution: "prisma@npm:5.22.0" - dependencies: - "@prisma/engines": 5.22.0 - fsevents: 2.3.3 - dependenciesMeta: - fsevents: - optional: true - bin: - prisma: build/index.js - checksum: 9789a8fa16db4ea5de89cc8420d498372f02d326359eb91bbed209fbca88f0539d63ca8d8ac297d37e51e24a3fc91eef75075dbf35980b2a01407448a6d416f9 - languageName: node - linkType: hard - "prisma@npm:^6.1.0": version: 6.1.0 resolution: "prisma@npm:6.1.0" From 6cd9030c040bfc855fbd6e22d345f5f3b477453e Mon Sep 17 00:00:00 2001 From: Natasha Myers Date: Thu, 26 Jun 2025 16:39:52 +0100 Subject: [PATCH 305/403] LOPS3-366: Changed log to be only run when in dev --- runner/src/server/services/webhookService.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index e6ad69dc05..5c12c7254b 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -1,5 +1,6 @@ import { post, put } from "./httpService"; import { HapiServer } from "../types"; +import config from "../config"; const DEFAULT_OPTIONS = { headers: { @@ -60,7 +61,9 @@ export class WebhookService { return Name; } - console.log(`Request status code: ${res.statusCode}`); + if (config.isDev) { + console.log(`Request status code: ${res.statusCode}`); + } const { reference } = JSON.parse(payload); From ab03943f483881b7033d1e1594b57dede1b0ab4b Mon Sep 17 00:00:00 2001 From: Natasha Myers Date: Fri, 27 Jun 2025 10:09:32 +0100 Subject: [PATCH 306/403] LOPS3-366: Changed log to be logger.info - used throughout the system and will block a log being viewed by the user, instead will be logged to cloudwatch --- runner/src/server/services/webhookService.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index 5c12c7254b..75dbbfa3fa 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -1,6 +1,5 @@ import { post, put } from "./httpService"; import { HapiServer } from "../types"; -import config from "../config"; const DEFAULT_OPTIONS = { headers: { @@ -61,9 +60,7 @@ export class WebhookService { return Name; } - if (config.isDev) { - console.log(`Request status code: ${res.statusCode}`); - } + this.logger.info(`Request status code: ${res.statusCode}`); const { reference } = JSON.parse(payload); From 760fad0fca61c8025c60e6166e292dda772d1ffc Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 27 Jun 2025 13:43:04 +0100 Subject: [PATCH 307/403] Forms --- .../forms/close-contact-form-hpt-nl5.json | 3323 +++++++++++++++++ .../forms/close-contact-form-hpt-uat.json | 3323 +++++++++++++++++ .../server/forms/close-contact-form-hpt.json | 3323 +++++++++++++++++ .../server/forms/close-contact-form-nl5.json | 3322 ++++++++++++++++ .../server/forms/close-contact-form-uat.json | 3322 ++++++++++++++++ .../src/server/forms/close-contact-form.json | 1647 ++++---- 6 files changed, 17489 insertions(+), 771 deletions(-) create mode 100644 runner/src/server/forms/close-contact-form-hpt-nl5.json create mode 100644 runner/src/server/forms/close-contact-form-hpt-uat.json create mode 100644 runner/src/server/forms/close-contact-form-hpt.json create mode 100644 runner/src/server/forms/close-contact-form-nl5.json create mode 100644 runner/src/server/forms/close-contact-form-uat.json diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json new file mode 100644 index 0000000000..5eb66a23fa --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "PersonalDetails" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonalDetails" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "PersonalDetails", + "title": "Personal details", + "hideTitle": true + }, + { + "name": "YourDetails", + "title": "Enter your details", + "hideTitle": false + }, + { + "name": "TheirDetails", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json new file mode 100644 index 0000000000..930ff2ce24 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "PersonalDetails" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonalDetails" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "PersonalDetails", + "title": "Personal details", + "hideTitle": true + }, + { + "name": "YourDetails", + "title": "Enter your details", + "hideTitle": false + }, + { + "name": "TheirDetails", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl3.uat.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-hpt.json b/runner/src/server/forms/close-contact-form-hpt.json new file mode 100644 index 0000000000..645f5955c2 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "PersonalDetails" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonalDetails" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "PersonalDetails", + "title": "Personal details", + "hideTitle": true + }, + { + "name": "YourDetails", + "title": "Enter your details", + "hideTitle": false + }, + { + "name": "TheirDetails", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json new file mode 100644 index 0000000000..438fa4983e --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -0,0 +1,3322 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "PersonalDetails" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonalDetails" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "PersonalDetails", + "title": "Personal details", + "hideTitle": true + }, + { + "name": "YourDetails", + "title": "Enter your details", + "hideTitle": false + }, + { + "name": "TheirDetails", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json new file mode 100644 index 0000000000..3b078aacbe --- /dev/null +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -0,0 +1,3322 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "PersonalDetails" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonalDetails" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "PersonalDetails", + "title": "Personal details", + "hideTitle": true + }, + { + "name": "YourDetails", + "title": "Enter your details", + "hideTitle": false + }, + { + "name": "TheirDetails", + "title": "Enter the details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalDetails.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl3.uat.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index 912f3874d7..84df5eeb0f 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -46,7 +46,7 @@ "name": "VCwJTN", "options": {}, "type": "Para", - "content": "We will need some details of the businesses and the people that you will list in this form. These details include:", + "content": "We will need some details of the people that you will list in this form. These details include:", "schema": {} }, { @@ -71,13 +71,6 @@ "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, - { - "name": "wseFxq", - "options": {}, - "type": "Html", - "content": "\n Start now\n \n \n \n", - "schema": {} - }, { "name": "gfOVOL", "options": {}, @@ -93,7 +86,21 @@ "schema": {} }, { - "name": "referenceID", + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", "options": { "allowPrePopulation": true, "allowPrePopulationOverwrite": true, @@ -121,14 +128,14 @@ "content": "

    Personal details

    " }, { - "name": "rGrRNN", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "cGrRNN", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -141,7 +148,7 @@ "content": "

    Contact details

    " }, { - "name": "tXnJTl", + "name": "phone_number", "options": {}, "type": "TelephoneNumberField", "title": "Phone number", @@ -149,7 +156,7 @@ "schema": {} }, { - "name": "EEGfAc", + "name": "email_address", "options": { "required": false }, "type": "EmailAddressField", "title": "Email address", @@ -158,17 +165,17 @@ } ], "next": [{ "path": "/completing-form-for" }], - "section": "RhyImE" + "section": "YourDetails" }, { "title": "Who are you completing this form for?", "path": "/completing-form-for", "components": [ { - "name": "iRJvrX", + "name": "completing_form_for", "options": { "hideTitle": true }, "type": "RadiosField", - "title": "Who you are completing the form for", + "title": "Who this form is for", "list": "AVoXlG", "schema": {} } @@ -176,7 +183,8 @@ "next": [ { "path": "/other-persons-details", "condition": "lGzwuI" }, { "path": "/close-contact-you", "condition": "SypzMi" } - ] + ], + "section": "PersonalDetails" }, { "path": "/other-persons-details", @@ -189,14 +197,14 @@ "content": "

    Personal details

    " }, { - "name": "FaENUm", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "LaENUm", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -215,7 +223,7 @@ "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " }, { - "name": "giIvyu", + "name": "phone_number", "options": {}, "type": "TelephoneNumberField", "title": "Phone number", @@ -223,7 +231,7 @@ "schema": {} }, { - "name": "ZvTgoD", + "name": "email_address", "options": { "required": false }, "type": "EmailAddressField", "title": "Email address", @@ -232,17 +240,17 @@ } ], "next": [{ "path": "/who-should-we-contact" }], - "section": "mKkWra" + "section": "TheirDetails" }, { "path": "/who-should-we-contact", "title": "Who should we contact if we need to follow up?", "components": [ { - "name": "RdSrff", + "name": "who_should_we_contact", "options": {}, "type": "RadiosField", - "title": "Who we should contact", + "title": "Who we should follow up with", "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", "list": "lNoBeE", "schema": {} @@ -255,7 +263,8 @@ "schema": {} } ], - "next": [{ "path": "/close-contact" }] + "next": [{ "path": "/close-contact" }], + "section": "PersonalDetails" }, { "path": "/close-contact", @@ -275,19 +284,23 @@ "list": "oDwqlv" }, { - "name": "FFRnNF", - "options": { "hideTitle": true }, + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, "type": "RadiosField", - "title": "'Yes' if they've been in close contact", + "title": "Have they been in close contact with anyone in the last 7 days?", "list": "YQUrgI", "values": { "type": "listRef" }, "schema": {} } ], "next": [ - { "path": "/close-contact-name-1", "condition": "IfContactsYesOther" }, - { "path": "/summary", "condition": "IfContactsNoOther" } - ] + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" }, { "path": "/close-contact-you", @@ -307,52 +320,53 @@ "list": "yDwqlv" }, { - "name": "GFRnNF", - "options": { "hideTitle": true }, + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, "type": "RadiosField", - "title": "'Yes' if you've been in close contact", + "title": "Have you been in close contact with anyone in the last 7 days?", "list": "YQUrgI", "values": { "type": "listRef" }, "schema": {} } ], "next": [ - { "path": "/close-contact-name-1", "condition": "IfContactsYesYou" }, - { "path": "/summary", "condition": "IfContactsNoYou" } - ] + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" }, { - "path": "/close-contact-name-1", - "title": "Enter the name for your close contact", + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName1", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName1", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-1" }], - "section": "CloseContact1" - }, - { - "path": "/close-contact-methods-1", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -361,7 +375,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber1", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -369,17 +390,23 @@ "schema": {} }, { - "name": "ContactEmail1", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -387,66 +414,58 @@ }, { "path": "/close-contact-added-1", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of a close contact.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-2", "condition": "AddAnotherYes1" }, + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, { "path": "/summary", "condition": "AddAnotherNo1" } ], - "section": "CloseContact1" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-2", - "title": "Enter the name for your close contact", + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName2", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName2", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-2" }], - "section": "CloseContact2" - }, - { - "path": "/close-contact-methods-2", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -455,7 +474,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber2", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -463,17 +489,23 @@ "schema": {} }, { - "name": "ContactEmail2", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -481,66 +513,58 @@ }, { "path": "/close-contact-added-2", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 2 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-3", "condition": "AddAnotherYes2" }, + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, { "path": "/summary", "condition": "AddAnotherNo2" } ], - "section": "CloseContact2" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-3", - "title": "Enter the name for your close contact", + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName3", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName3", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-3" }], - "section": "CloseContact3" - }, - { - "path": "/close-contact-methods-3", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -549,7 +573,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber3", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -557,17 +588,23 @@ "schema": {} }, { - "name": "ContactEmail3", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -575,66 +612,58 @@ }, { "path": "/close-contact-added-3", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 3 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-4", "condition": "AddAnotherYes3" }, + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, { "path": "/summary", "condition": "AddAnotherNo3" } ], - "section": "CloseContact3" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-4", - "title": "Enter the name for your close contact", + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName4", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName4", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-4" }], - "section": "CloseContact4" - }, - { - "path": "/close-contact-methods-4", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -643,7 +672,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber4", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -651,17 +687,23 @@ "schema": {} }, { - "name": "ContactEmail4", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -669,66 +711,58 @@ }, { "path": "/close-contact-added-4", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 4 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-5", "condition": "AddAnotherYes4" }, + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, { "path": "/summary", "condition": "AddAnotherNo4" } ], - "section": "CloseContact4" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-5", - "title": "Enter the name for your close contact", + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName5", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName5", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-5" }], - "section": "CloseContact5" - }, - { - "path": "/close-contact-methods-5", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -737,7 +771,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber5", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -745,17 +786,23 @@ "schema": {} }, { - "name": "ContactEmail5", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -763,66 +810,58 @@ }, { "path": "/close-contact-added-5", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 5 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-6", "condition": "AddAnotherYes5" }, + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, { "path": "/summary", "condition": "AddAnotherNo5" } ], - "section": "CloseContact5" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-6", - "title": "Enter the name for your close contact", + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName6", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName6", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-6" }], - "section": "CloseContact6" - }, - { - "path": "/close-contact-methods-6", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -831,7 +870,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber6", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -839,17 +885,23 @@ "schema": {} }, { - "name": "ContactEmail6", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -857,66 +909,58 @@ }, { "path": "/close-contact-added-6", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 6 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-7", "condition": "AddAnotherYes6" }, + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, { "path": "/summary", "condition": "AddAnotherNo6" } ], - "section": "CloseContact6" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-7", - "title": "Enter the name for your close contact", + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName7", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName7", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-7" }], - "section": "CloseContact7" - }, - { - "path": "/close-contact-methods-7", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -925,7 +969,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber7", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -933,17 +984,23 @@ "schema": {} }, { - "name": "ContactEmail7", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -951,66 +1008,58 @@ }, { "path": "/close-contact-added-7", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 7 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-8", "condition": "AddAnotherYes7" }, + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, { "path": "/summary", "condition": "AddAnotherNo7" } ], - "section": "CloseContact7" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-8", - "title": "Enter the name for your close contact", + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName8", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName8", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-8" }], - "section": "CloseContact8" - }, - { - "path": "/close-contact-methods-8", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1019,7 +1068,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber8", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1027,17 +1083,23 @@ "schema": {} }, { - "name": "ContactEmail8", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1045,66 +1107,58 @@ }, { "path": "/close-contact-added-8", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 8 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-9", "condition": "AddAnotherYes8" }, + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, { "path": "/summary", "condition": "AddAnotherNo8" } ], - "section": "CloseContact8" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-9", - "title": "Enter the name for your close contact", + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName9", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName9", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-9" }], - "section": "CloseContact9" - }, - { - "path": "/close-contact-methods-9", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1113,7 +1167,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber9", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1121,17 +1182,23 @@ "schema": {} }, { - "name": "ContactEmail9", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1139,66 +1206,58 @@ }, { "path": "/close-contact-added-9", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 9 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-10", "condition": "AddAnotherYes9" }, + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, { "path": "/summary", "condition": "AddAnotherNo9" } ], - "section": "CloseContact9" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-10", - "title": "Enter the name for your close contact", + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName10", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName10", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-10" }], - "section": "CloseContact10" - }, - { - "path": "/close-contact-methods-10", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1207,7 +1266,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber10", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1215,17 +1281,23 @@ "schema": {} }, { - "name": "ContactEmail10", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1233,66 +1305,58 @@ }, { "path": "/close-contact-added-10", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 10 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson10", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-11", "condition": "AddAnotherYes10" }, + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, { "path": "/summary", "condition": "AddAnotherNo10" } ], - "section": "CloseContact10" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-11", - "title": "Enter the name for your close contact", + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName11", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName11", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-11" }], - "section": "CloseContact11" - }, - { - "path": "/close-contact-methods-11", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1301,7 +1365,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber11", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1309,17 +1380,23 @@ "schema": {} }, { - "name": "ContactEmail11", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1327,66 +1404,58 @@ }, { "path": "/close-contact-added-11", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 11 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson11", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-12", "condition": "AddAnotherYes11" }, + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, { "path": "/summary", "condition": "AddAnotherNo11" } ], - "section": "CloseContact11" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-12", - "title": "Enter the name for your close contact", + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName12", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName12", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-12" }], - "section": "CloseContact12" - }, - { - "path": "/close-contact-methods-12", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1395,7 +1464,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber12", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1403,17 +1479,23 @@ "schema": {} }, { - "name": "ContactEmail12", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1421,66 +1503,58 @@ }, { "path": "/close-contact-added-12", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 12 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson12", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-13", "condition": "AddAnotherYes12" }, + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, { "path": "/summary", "condition": "AddAnotherNo12" } ], - "section": "CloseContact12" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-13", - "title": "Enter the name for your close contact", + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName13", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName13", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-13" }], - "section": "CloseContact13" - }, - { - "path": "/close-contact-methods-13", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1489,7 +1563,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber13", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1497,17 +1578,23 @@ "schema": {} }, { - "name": "ContactEmail13", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1515,66 +1602,58 @@ }, { "path": "/close-contact-added-13", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 13 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson13", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-14", "condition": "AddAnotherYes13" }, + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, { "path": "/summary", "condition": "AddAnotherNo13" } ], - "section": "CloseContact13" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-14", - "title": "Enter the name for your close contact", + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName14", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName14", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-14" }], - "section": "CloseContact14" - }, - { - "path": "/close-contact-methods-14", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1583,7 +1662,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber14", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1591,17 +1677,23 @@ "schema": {} }, { - "name": "ContactEmail14", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1609,66 +1701,58 @@ }, { "path": "/close-contact-added-14", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 14 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson14", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-15", "condition": "AddAnotherYes14" }, + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, { "path": "/summary", "condition": "AddAnotherNo14" } ], - "section": "CloseContact14" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-15", - "title": "Enter the name for your close contact", + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName15", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName15", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-15" }], - "section": "CloseContact15" - }, - { - "path": "/close-contact-methods-15", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1677,7 +1761,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber15", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1685,17 +1776,23 @@ "schema": {} }, { - "name": "ContactEmail15", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1703,66 +1800,58 @@ }, { "path": "/close-contact-added-15", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 15 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson15", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-16", "condition": "AddAnotherYes15" }, + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, { "path": "/summary", "condition": "AddAnotherNo15" } ], - "section": "CloseContact15" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-16", - "title": "Enter the name for your close contact", + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName16", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName16", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-16" }], - "section": "CloseContact16" - }, - { - "path": "/close-contact-methods-16", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1771,7 +1860,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber16", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1779,17 +1875,23 @@ "schema": {} }, { - "name": "ContactEmail16", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1797,66 +1899,58 @@ }, { "path": "/close-contact-added-16", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 16 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson16", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-17", "condition": "AddAnotherYes16" }, + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, { "path": "/summary", "condition": "AddAnotherNo16" } ], - "section": "CloseContact16" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-17", - "title": "Enter the name for your close contact", + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName17", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName17", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-17" }], - "section": "CloseContact17" - }, - { - "path": "/close-contact-methods-17", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1865,7 +1959,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber17", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1873,17 +1974,23 @@ "schema": {} }, { - "name": "ContactEmail17", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -1891,66 +1998,58 @@ }, { "path": "/close-contact-added-17", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 17 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson17", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-18", "condition": "AddAnotherYes17" }, + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, { "path": "/summary", "condition": "AddAnotherNo17" } ], - "section": "CloseContact17" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-18", - "title": "Enter the name for your close contact", + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName18", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName18", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-18" }], - "section": "CloseContact18" - }, - { - "path": "/close-contact-methods-18", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -1959,7 +2058,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber18", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1967,17 +2073,23 @@ "schema": {} }, { - "name": "ContactEmail18", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -1985,66 +2097,58 @@ }, { "path": "/close-contact-added-18", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 18 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson18", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-19", "condition": "AddAnotherYes18" }, + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, { "path": "/summary", "condition": "AddAnotherNo18" } ], - "section": "CloseContact18" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-19", - "title": "Enter the name for your close contact", + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName19", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName19", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-19" }], - "section": "CloseContact19" - }, - { - "path": "/close-contact-methods-19", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -2053,7 +2157,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber19", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2061,17 +2172,23 @@ "schema": {} }, { - "name": "ContactEmail19", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2079,66 +2196,58 @@ }, { "path": "/close-contact-added-19", - "title": "Close contact added", + "title": "Close contact", "components": [ { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You have provided the details of 19 close contacts.", - "schema": {} - }, - { - "name": "htHdDj", + "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    " + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} }, { "name": "AnotherPerson19", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact" + "title": "'Yes' if there is another close contact", + "schema": {} } ], "next": [ - { "path": "/close-contact-name-20", "condition": "AddAnotherYes19" }, + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, { "path": "/summary", "condition": "AddAnotherNo19" } ], - "section": "CloseContact19" + "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-name-20", - "title": "Enter the name for your close contact", + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", "components": [ { - "name": "ContactFirstName20", + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "ContactLastName20", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", "schema": {} - } - ], - "next": [{ "path": "/close-contact-methods-20" }], - "section": "CloseContact20" - }, - { - "path": "/close-contact-methods-20", - "title": "Enter the contact details for your close contact", - "components": [ + }, { - "name": "ContactHintText", + "name": "Subheader", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "

    Contact details

    " }, { "name": "ContactWarningText", @@ -2147,7 +2256,14 @@ "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " }, { - "name": "ContactPhoneNumber20", + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2155,17 +2271,23 @@ "schema": {} }, { - "name": "ContactEmail20", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", "schema": {} }, { - "name": "PreventTwoEmptyFields", + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], @@ -2216,7 +2338,7 @@ ] }, { - "title": "Who we should contact", + "title": "Who we should follow up with", "name": "lNoBeE", "type": "string", "items": [ @@ -2289,12 +2411,31 @@ } ], "sections": [ - { "name": "RhyImE", "title": "Enter your details", "hideTitle": false }, { - "name": "mKkWra", + "name": "PersonalDetails", + "title": "Personal details", + "hideTitle": true + }, + { + "name": "YourDetails", + "title": "Enter your details", + "hideTitle": false + }, + { + "name": "TheirDetails", "title": "Enter the details for the person who is being contact traced", "hideTitle": false }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, @@ -2369,9 +2510,9 @@ "conditions": [ { "field": { - "name": "iRJvrX", + "name": "PersonalDetails.completing_form_for", "type": "RadiosField", - "display": "Who you are completing the form for" + "display": "Who this form is for" }, "operator": "is", "value": { @@ -2391,9 +2532,9 @@ "conditions": [ { "field": { - "name": "iRJvrX", + "name": "PersonalDetails.completing_form_for", "type": "RadiosField", - "display": "Who you are completing the form for" + "display": "Who this form is for" }, "operator": "is", "value": { "type": "Value", "value": "Myself", "display": "Myself" } @@ -2403,49 +2544,13 @@ }, { "displayName": "If contacts", - "name": "IfContactsYesOther", - "value": { - "name": "If contacts needed", - "conditions": [ - { - "field": { - "name": "FFRnNF", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } - } - ] - } - }, - { - "displayName": "If no contacts", - "name": "IfContactsNoOther", - "value": { - "name": "If no contacts needed", - "conditions": [ - { - "field": { - "name": "FFRnNF", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } - } - ] - } - }, - { - "displayName": "If contacts", - "name": "IfContactsYesYou", + "name": "IfContactsYes", "value": { "name": "If contacts needed", "conditions": [ { "field": { - "name": "GFRnNF", + "name": "BeenInContact.been_in_contact", "type": "RadiosField", "display": "Close contacts option" }, @@ -2457,13 +2562,13 @@ }, { "displayName": "If no contacts", - "name": "IfContactsNoYou", + "name": "IfContactsNo", "value": { "name": "If no contacts needed", "conditions": [ { "field": { - "name": "GFRnNF", + "name": "BeenInContact.been_in_contact", "type": "RadiosField", "display": "Close contacts option" }, @@ -2481,7 +2586,7 @@ "conditions": [ { "field": { - "name": "CloseContact1.AnotherPerson1", + "name": "AnotherPerson1", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2499,7 +2604,7 @@ "conditions": [ { "field": { - "name": "CloseContact1.AnotherPerson1", + "name": "AnotherPerson1", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2517,7 +2622,7 @@ "conditions": [ { "field": { - "name": "CloseContact2.AnotherPerson2", + "name": "AnotherPerson2", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2535,7 +2640,7 @@ "conditions": [ { "field": { - "name": "CloseContact2.AnotherPerson2", + "name": "AnotherPerson2", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2553,7 +2658,7 @@ "conditions": [ { "field": { - "name": "CloseContact3.AnotherPerson3", + "name": "AnotherPerson3", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2571,7 +2676,7 @@ "conditions": [ { "field": { - "name": "CloseContact3.AnotherPerson3", + "name": "AnotherPerson3", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2589,7 +2694,7 @@ "conditions": [ { "field": { - "name": "CloseContact4.AnotherPerson4", + "name": "AnotherPerson4", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2607,7 +2712,7 @@ "conditions": [ { "field": { - "name": "CloseContact4.AnotherPerson4", + "name": "AnotherPerson4", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2625,7 +2730,7 @@ "conditions": [ { "field": { - "name": "CloseContact5.AnotherPerson5", + "name": "AnotherPerson5", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2643,7 +2748,7 @@ "conditions": [ { "field": { - "name": "CloseContact5.AnotherPerson5", + "name": "AnotherPerson5", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2661,7 +2766,7 @@ "conditions": [ { "field": { - "name": "CloseContact6.AnotherPerson6", + "name": "AnotherPerson6", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2679,7 +2784,7 @@ "conditions": [ { "field": { - "name": "CloseContact6.AnotherPerson6", + "name": "AnotherPerson6", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2697,7 +2802,7 @@ "conditions": [ { "field": { - "name": "CloseContact7.AnotherPerson7", + "name": "AnotherPerson7", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2715,7 +2820,7 @@ "conditions": [ { "field": { - "name": "CloseContact7.AnotherPerson7", + "name": "AnotherPerson7", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2733,7 +2838,7 @@ "conditions": [ { "field": { - "name": "CloseContact8.AnotherPerson8", + "name": "AnotherPerson8", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2751,7 +2856,7 @@ "conditions": [ { "field": { - "name": "CloseContact8.AnotherPerson8", + "name": "AnotherPerson8", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2769,7 +2874,7 @@ "conditions": [ { "field": { - "name": "CloseContact9.AnotherPerson9", + "name": "AnotherPerson9", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2787,7 +2892,7 @@ "conditions": [ { "field": { - "name": "CloseContact9.AnotherPerson9", + "name": "AnotherPerson9", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2805,7 +2910,7 @@ "conditions": [ { "field": { - "name": "CloseContact10.AnotherPerson10", + "name": "AnotherPerson10", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2823,7 +2928,7 @@ "conditions": [ { "field": { - "name": "CloseContact10.AnotherPerson10", + "name": "AnotherPerson10", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2841,7 +2946,7 @@ "conditions": [ { "field": { - "name": "CloseContact11.AnotherPerson11", + "name": "AnotherPerson11", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2859,7 +2964,7 @@ "conditions": [ { "field": { - "name": "CloseContact11.AnotherPerson11", + "name": "AnotherPerson11", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2877,7 +2982,7 @@ "conditions": [ { "field": { - "name": "CloseContact12.AnotherPerson12", + "name": "AnotherPerson12", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2895,7 +3000,7 @@ "conditions": [ { "field": { - "name": "CloseContact12.AnotherPerson12", + "name": "AnotherPerson12", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2913,7 +3018,7 @@ "conditions": [ { "field": { - "name": "CloseContact13.AnotherPerson13", + "name": "AnotherPerson13", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2931,7 +3036,7 @@ "conditions": [ { "field": { - "name": "CloseContact13.AnotherPerson13", + "name": "AnotherPerson13", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2949,7 +3054,7 @@ "conditions": [ { "field": { - "name": "CloseContact14.AnotherPerson14", + "name": "AnotherPerson14", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2967,7 +3072,7 @@ "conditions": [ { "field": { - "name": "CloseContact14.AnotherPerson14", + "name": "AnotherPerson14", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -2985,7 +3090,7 @@ "conditions": [ { "field": { - "name": "CloseContact15.AnotherPerson15", + "name": "AnotherPerson15", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3003,7 +3108,7 @@ "conditions": [ { "field": { - "name": "CloseContact15.AnotherPerson15", + "name": "AnotherPerson15", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3021,7 +3126,7 @@ "conditions": [ { "field": { - "name": "CloseContact16.AnotherPerson16", + "name": "AnotherPerson16", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3039,7 +3144,7 @@ "conditions": [ { "field": { - "name": "CloseContact16.AnotherPerson16", + "name": "AnotherPerson16", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3057,7 +3162,7 @@ "conditions": [ { "field": { - "name": "CloseContact17.AnotherPerson17", + "name": "AnotherPerson17", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3075,7 +3180,7 @@ "conditions": [ { "field": { - "name": "CloseContact17.AnotherPerson17", + "name": "AnotherPerson17", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3093,7 +3198,7 @@ "conditions": [ { "field": { - "name": "CloseContact18.AnotherPerson18", + "name": "AnotherPerson18", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3111,7 +3216,7 @@ "conditions": [ { "field": { - "name": "CloseContact18.AnotherPerson18", + "name": "AnotherPerson18", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3129,7 +3234,7 @@ "conditions": [ { "field": { - "name": "CloseContact19.AnotherPerson19", + "name": "AnotherPerson19", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3147,7 +3252,7 @@ "conditions": [ { "field": { - "name": "CloseContact19.AnotherPerson19", + "name": "AnotherPerson19", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3165,7 +3270,7 @@ "conditions": [ { "field": { - "name": "CloseContact20.AnotherPerson20", + "name": "AnotherPerson20", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, @@ -3183,7 +3288,7 @@ "conditions": [ { "field": { - "name": "CloseContact20.AnotherPerson20", + "name": "AnotherPerson20", "type": "YesNoField", "display": "'Yes' if there is another close contact" }, From 3c991f8918d8223a9d728c2f43b43a0ca990efbf Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 27 Jun 2025 13:43:52 +0100 Subject: [PATCH 308/403] Create closeContact.ts --- .../transforms/summaryDetails/closeContact.ts | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 runner/src/server/transforms/summaryDetails/closeContact.ts diff --git a/runner/src/server/transforms/summaryDetails/closeContact.ts b/runner/src/server/transforms/summaryDetails/closeContact.ts new file mode 100644 index 0000000000..8c9a6ff837 --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/closeContact.ts @@ -0,0 +1,44 @@ +// This converts the personal information in the YourDetails and TheirDetails sections into single rows, then moves these into the PersonalDetails section. +// Additionally, the Close Contact sections are turned into cards, and info not contained in a named section is filtered out. + +export function closeContact( + details: Array<{ name: string; title: string; items: Array }> +) { + const getSection = (name: string) => + details.find((detail) => detail.name === name); + + const yourOrTheirDetails = (name: string) => + Object.assign( + getSection(name)!.items.find((item) => item.name === "first_name"), + { + name, + label: name.replace("Details", " details"), + title: name.replace("Details", " details"), + value: getSection(name)! + .items.map((item) => item.value) + .filter((value) => value) + .join("\n") + .replace("\n", " "), + rawValue: "values", + } + ); + + const personalDetails = getSection("PersonalDetails"); + if (personalDetails) { + personalDetails.items.unshift(yourOrTheirDetails("YourDetails")); + if (getSection("TheirDetails")) { + personalDetails.items.splice(2, 0, yourOrTheirDetails("TheirDetails")); + } + const filtered = details.filter( + (detail) => detail.name && !detail.name.includes("Details") + ); + filtered.unshift(personalDetails); + return filtered.map((detail) => { + const { url } = detail.items[0]; + if (detail.name.match(/CloseContact\d/)) return { ...detail, card: url }; + return detail; + }); + } + + return details; +} From ce3435ad569e55cf15e06e42c365a3bb9ff1b657 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 27 Jun 2025 14:59:48 +0100 Subject: [PATCH 309/403] Change filtered to detailsContainingName --- runner/src/server/transforms/summaryDetails/closeContact.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/closeContact.ts b/runner/src/server/transforms/summaryDetails/closeContact.ts index 8c9a6ff837..66f7ff077e 100644 --- a/runner/src/server/transforms/summaryDetails/closeContact.ts +++ b/runner/src/server/transforms/summaryDetails/closeContact.ts @@ -29,11 +29,11 @@ export function closeContact( if (getSection("TheirDetails")) { personalDetails.items.splice(2, 0, yourOrTheirDetails("TheirDetails")); } - const filtered = details.filter( + const detailsContainingName = details.filter( (detail) => detail.name && !detail.name.includes("Details") ); - filtered.unshift(personalDetails); - return filtered.map((detail) => { + detailsContainingName.unshift(personalDetails); + return detailsContainingName.map((detail) => { const { url } = detail.items[0]; if (detail.name.match(/CloseContact\d/)) return { ...detail, card: url }; return detail; From d3cab1ae263b3e2cba11a5962416a74442711460 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 27 Jun 2025 15:01:53 +0100 Subject: [PATCH 310/403] Add closeContact to summaryDetails/index.ts --- runner/src/server/transforms/summaryDetails/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 9bfed44a4e..ff17a4918c 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -6,6 +6,8 @@ export { SummaryDetailsTransformationMap }; /** * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) */ -const summaryDetailsTransformations: SummaryDetailsTransformationMap = {}; +const summaryDetailsTransformations: SummaryDetailsTransformationMap = { + "close-contact-form": closeContact, +}; module.exports = summaryDetailsTransformations; From 6e3848465178cf22c0b3f34295e195f070049f57 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 27 Jun 2025 16:13:16 +0100 Subject: [PATCH 311/403] Rename youOrTheirDetails to convertSectionToRow --- runner/src/server/transforms/summaryDetails/closeContact.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/closeContact.ts b/runner/src/server/transforms/summaryDetails/closeContact.ts index 66f7ff077e..59ea413f57 100644 --- a/runner/src/server/transforms/summaryDetails/closeContact.ts +++ b/runner/src/server/transforms/summaryDetails/closeContact.ts @@ -7,7 +7,7 @@ export function closeContact( const getSection = (name: string) => details.find((detail) => detail.name === name); - const yourOrTheirDetails = (name: string) => + const convertSectionToRow = (name: string) => Object.assign( getSection(name)!.items.find((item) => item.name === "first_name"), { @@ -25,9 +25,9 @@ export function closeContact( const personalDetails = getSection("PersonalDetails"); if (personalDetails) { - personalDetails.items.unshift(yourOrTheirDetails("YourDetails")); + personalDetails.items.unshift(convertSectionToRow("YourDetails")); if (getSection("TheirDetails")) { - personalDetails.items.splice(2, 0, yourOrTheirDetails("TheirDetails")); + personalDetails.items.splice(2, 0, convertSectionToRow("TheirDetails")); } const detailsContainingName = details.filter( (detail) => detail.name && !detail.name.includes("Details") From aa314ac903e64a1f9f0f5cd3d35740df32a61686 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 30 Jun 2025 10:06:15 +0100 Subject: [PATCH 312/403] Delete runner/src/server/transforms/summaryDetails/closeContact.ts --- .../transforms/summaryDetails/closeContact.ts | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 runner/src/server/transforms/summaryDetails/closeContact.ts diff --git a/runner/src/server/transforms/summaryDetails/closeContact.ts b/runner/src/server/transforms/summaryDetails/closeContact.ts deleted file mode 100644 index 59ea413f57..0000000000 --- a/runner/src/server/transforms/summaryDetails/closeContact.ts +++ /dev/null @@ -1,44 +0,0 @@ -// This converts the personal information in the YourDetails and TheirDetails sections into single rows, then moves these into the PersonalDetails section. -// Additionally, the Close Contact sections are turned into cards, and info not contained in a named section is filtered out. - -export function closeContact( - details: Array<{ name: string; title: string; items: Array }> -) { - const getSection = (name: string) => - details.find((detail) => detail.name === name); - - const convertSectionToRow = (name: string) => - Object.assign( - getSection(name)!.items.find((item) => item.name === "first_name"), - { - name, - label: name.replace("Details", " details"), - title: name.replace("Details", " details"), - value: getSection(name)! - .items.map((item) => item.value) - .filter((value) => value) - .join("\n") - .replace("\n", " "), - rawValue: "values", - } - ); - - const personalDetails = getSection("PersonalDetails"); - if (personalDetails) { - personalDetails.items.unshift(convertSectionToRow("YourDetails")); - if (getSection("TheirDetails")) { - personalDetails.items.splice(2, 0, convertSectionToRow("TheirDetails")); - } - const detailsContainingName = details.filter( - (detail) => detail.name && !detail.name.includes("Details") - ); - detailsContainingName.unshift(personalDetails); - return detailsContainingName.map((detail) => { - const { url } = detail.items[0]; - if (detail.name.match(/CloseContact\d/)) return { ...detail, card: url }; - return detail; - }); - } - - return details; -} From 646920586d76fe1d90664843c45b4d8ade545df8 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 30 Jun 2025 10:06:49 +0100 Subject: [PATCH 313/403] Revert index.ts --- runner/src/server/transforms/summaryDetails/index.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index ff17a4918c..9bfed44a4e 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -6,8 +6,6 @@ export { SummaryDetailsTransformationMap }; /** * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) */ -const summaryDetailsTransformations: SummaryDetailsTransformationMap = { - "close-contact-form": closeContact, -}; +const summaryDetailsTransformations: SummaryDetailsTransformationMap = {}; module.exports = summaryDetailsTransformations; From c209f41b295ff845de1a85128ce5400bf106e563 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 30 Jun 2025 11:52:56 +0100 Subject: [PATCH 314/403] Update RepeatingSectionSummaryPageController.ts --- .../RepeatingSectionSummaryPageController.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts index df2360f58b..bf9c3fa383 100644 --- a/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/RepeatingSectionSummaryPageController.ts @@ -43,7 +43,13 @@ export class RepeatingSectionSummaryPageController extends PageController { return h.redirect(`/${this.model.basePath}${this.path}`); } - this.details = summaryFiltered; + this.details = summaryFiltered.map((detail) => { + const currentPath = this.path.replace("/", ""); + return { + ...detail, + card: detail.items[0].url.replace("summary", currentPath), + }; + }); return super.makeGetRouteHandler()(request, h); }; } From dab7a0928c5ca6276dca3606666710b1798a93e4 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 30 Jun 2025 16:30:43 +0100 Subject: [PATCH 315/403] Update index.ts --- runner/src/server/transforms/summaryDetails/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 9bfed44a4e..df5f14120a 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -1,11 +1,15 @@ "use strict"; +import { sectionsOnlyAndCardConversion } from "./sectionsOnlyAndCardConversion"; + import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; export { SummaryDetailsTransformationMap }; /** * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) */ -const summaryDetailsTransformations: SummaryDetailsTransformationMap = {}; +const summaryDetailsTransformations: SummaryDetailsTransformationMap = { + "close-contact-form": sectionsOnlyAndCardConversion, +}; module.exports = summaryDetailsTransformations; From ddb978746411595b447d0c8dc26ea0a650f2b21c Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 30 Jun 2025 16:31:04 +0100 Subject: [PATCH 316/403] Create sectionsOnlyAndCardConversion.ts --- .../summaryDetails/sectionsOnlyAndCardConversion.ts | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts diff --git a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts new file mode 100644 index 0000000000..0769f92473 --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts @@ -0,0 +1,9 @@ +export function sectionsOnlyAndCardConversion(details) { + return details + .filter((detail) => detail.name) + .map((detail) => { + const { url } = detail.items[0]; + if (detail.name.match(/\w\d/)) return { ...detail, card: url }; + return detail; + }); +} From e5756ae2ce37ce769648f982dd0074c7415cf976 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 1 Jul 2025 09:52:31 +0100 Subject: [PATCH 317/403] Add all close-contact forms to index.ts --- runner/src/server/transforms/summaryDetails/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index df5f14120a..27c72eef7c 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -10,6 +10,11 @@ export { SummaryDetailsTransformationMap }; */ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { "close-contact-form": sectionsOnlyAndCardConversion, + "close-contact-form-uat": sectionsOnlyAndCardConversion, + "close-contact-form-nl5": sectionsOnlyAndCardConversion, + "close-contact-form-hpt": sectionsOnlyAndCardConversion, + "close-contact-form-hpt-uat": sectionsOnlyAndCardConversion, + "close-contact-form-hpt-nl5": sectionsOnlyAndCardConversion, }; module.exports = summaryDetailsTransformations; From 4c0e28efe4f8687a0fcc54d33a9c7f42d0b0b81c Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 1 Jul 2025 12:18:26 +0100 Subject: [PATCH 318/403] Update summary.html --- runner/src/server/views/summary.html | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/src/server/views/summary.html b/runner/src/server/views/summary.html index f0377f26a7..d8a49306cc 100644 --- a/runner/src/server/views/summary.html +++ b/runner/src/server/views/summary.html @@ -1,4 +1,5 @@ {% from "partials/summary-detail.html" import summaryDetail %} +{% from "partials/summary-card.html" import summaryCard %} {% from "components/checkboxes/macro.njk" import govukCheckboxes %} {% extends 'layout.html' %} From e0ecbfc0ce5d689c5ef2b336c22718f410eab592 Mon Sep 17 00:00:00 2001 From: kitttang Date: Wed, 2 Jul 2025 15:41:19 +0100 Subject: [PATCH 319/403] adding external feedback form and footers (#415) * adding external feedback form and footers * Update kls-path-1.json ${KLSwebhook} put that back * Update accessibility-statement.html * Update accessibility-statement.html * Update privacy.html * Update privacy.html * Update privacy.html * Update accessibility-statement.html * Update accessibility-statement.html * Update privacy.html * Update accessibility-statement.html * checking if url is relative instead of using flag * change to form urls * typo in url * changing error messages * putting back question mark * change to service name and name --- .../{kls-path-1.json => kls-enquiries.json} | 33 ++-- runner/src/server/forms/kls-magic-link.json | 16 +- .../server/forms/kls-training-magic-link.json | 15 +- ...raining.json => kls-training-request.json} | 21 ++- .../pageControllers/PageControllerBase.ts | 18 +- .../accessibility-statement.html | 26 +++ .../server/views/kls-enquiries/cookies.html | 114 ++++++++++++ .../server/views/kls-enquiries/privacy.html | 161 ++++++++++++++++ .../accessibility-statement.html | 26 +++ .../server/views/kls-magic-link/cookies.html | 114 ++++++++++++ .../server/views/kls-magic-link/privacy.html | 161 ++++++++++++++++ .../accessibility-statement.html | 26 +++ .../kls-training-magic-link/cookies.html | 114 ++++++++++++ .../kls-training-magic-link/privacy.html | 176 ++++++++++++++++++ .../accessibility-statement.html | 96 ++++++++++ .../views/kls-training-request/cookies.html | 114 ++++++++++++ .../views/kls-training-request/privacy.html | 161 ++++++++++++++++ 17 files changed, 1349 insertions(+), 43 deletions(-) rename runner/src/server/forms/{kls-path-1.json => kls-enquiries.json} (98%) rename runner/src/server/forms/{kls-training.json => kls-training-request.json} (98%) create mode 100644 runner/src/server/views/kls-enquiries/accessibility-statement.html create mode 100644 runner/src/server/views/kls-enquiries/cookies.html create mode 100644 runner/src/server/views/kls-enquiries/privacy.html create mode 100644 runner/src/server/views/kls-magic-link/accessibility-statement.html create mode 100644 runner/src/server/views/kls-magic-link/cookies.html create mode 100644 runner/src/server/views/kls-magic-link/privacy.html create mode 100644 runner/src/server/views/kls-training-magic-link/accessibility-statement.html create mode 100644 runner/src/server/views/kls-training-magic-link/cookies.html create mode 100644 runner/src/server/views/kls-training-magic-link/privacy.html create mode 100644 runner/src/server/views/kls-training-request/accessibility-statement.html create mode 100644 runner/src/server/views/kls-training-request/cookies.html create mode 100644 runner/src/server/views/kls-training-request/privacy.html diff --git a/runner/src/server/forms/kls-path-1.json b/runner/src/server/forms/kls-enquiries.json similarity index 98% rename from runner/src/server/forms/kls-path-1.json rename to runner/src/server/forms/kls-enquiries.json index 43ec3ae448..d808dfbefd 100644 --- a/runner/src/server/forms/kls-path-1.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -1,10 +1,10 @@ { "metadata": {}, "startPage": "/start", - "fullStartPage": "/kls-path-1/start", + "fullStartPage": "/kls-enquiries/start", "authentication": true, "toggle": true, - "serviceName": "Knowledge and Library Services", + "serviceName": "UKHSA Knowledge and Library Services (KLS)", "analytics": { "matomoUrl": "https://ukhsakls.matomo.cloud", "matomoId": "11" @@ -12,6 +12,7 @@ "webhookHmacSharedKey": "${KLSkey}", "fileUploadHmacSharedKey": "${KLSFileUploadKey}", "magicLinkConfig": "kls-magic-link", + "name": "UKHSA Knowledge and Library Services (KLS)", "pages": [ { "title": "Contact the Knowledge and Library Services team", @@ -214,7 +215,7 @@ "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" }, "type":"FileUploadField", - "title":"If you need to upload a file to help us deal with your enquiry, do so here. (optional)" + "title":"If you need to upload a file to help us deal with your enquiry, do so here." } @@ -479,9 +480,9 @@ "name": "lIUPMw", "options": { "customValidationMessages": { - "any.required": "Enter type of review", - "any.only": "Enter type of review", - "string.empty": "Enter type of review" + "any.required": "Enter what type of review you are doing", + "any.only": "Enter what type of review you are doing", + "string.empty": "Enter what type of review you are doing" } }, "type": "SelectField", @@ -507,9 +508,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter reason for the review", - "any.only": "Enter reason for the review", - "string.empty": "Enter reason for the review" + "any.required": "Enter the reason for conducting this review", + "any.only": "Enter the reason for conducting this review", + "string.empty": "Enter the reason for conducting this review" } }, "type": "SelectField", @@ -534,9 +535,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter where to publish review", - "any.only": "Enter where to publish review", - "string.empty": "Enter where to publish review" + "any.required": "Enter where you intend to publish your review", + "any.only": "Enter where you intend to publish your review", + "string.empty": "Enter where you intend to publish your review" } }, "type": "SelectField", @@ -568,9 +569,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter if you have written a protocol", - "any.only": "Enter if you have written a protocol", - "string.empty": "Enter if you have written a protocol" + "any.required": "Select have you written a protocol", + "any.only": "Select have you written a protocol", + "string.empty": "Select have you written a protocol" } }, "type": "YesNoField", @@ -2374,7 +2375,7 @@ }, "feedback": { "feedbackForm": true, - "url": "/kls-feedback" + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" }, "jwtKey": "${KLSJwtKey}" } diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index ef5dfd7238..64c1ef3aaf 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -3,8 +3,7 @@ "skipSummary": true, "authentication": true, "toggle": true, - "toggleRedirect": "/kls-path-1/which-organisation-do-you-work-for-DUPE", - + "toggleRedirect": "/kls-enquiries/which-organisation-do-you-work-for-DUPE", "retryTimeoutSeconds": 300, "analytics": { "matomoId": "11", @@ -13,8 +12,9 @@ "magicLinkConfig": "kls-magic-link", "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk", "nccpentest.com", "nccgroup.com"], "invalidDomainRedirect": "/kls-magic-link/your-email-is-not-on-our-approved-list", - "serviceName": "Knowledge and Library Services", - "fullStartPage": "/kls-path-1/start", + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "name": "UKHSA Knowledge and Library Services (KLS)", + "fullStartPage": "/kls-enquiries/start", "pages": [ { "path": "/start", @@ -27,7 +27,7 @@ "unauthenticated": true, "continueButtonText": "Continue", "showContinueButton": true, - "backLinkFallback": "/kls-path-1/which-organisation-do-you-work-for", + "backLinkFallback": "/kls-enquiries/which-organisation-do-you-work-for", "components": [ { "name": "EmailIntro", @@ -167,7 +167,7 @@ "name": "EmailConfirmed", "options": {}, "type": "Para", - "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", "schema": {} } ] @@ -239,8 +239,8 @@ "jwtKey": "${KLSJwtKey}", "feedback": { "feedbackForm": true, - "url": "/feedback" + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" }, "version": 2, "conditions": [] -} +} \ No newline at end of file diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index a8c2dcee2c..4d97c7f64c 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -4,7 +4,9 @@ "skipSummary": true, "authentication": true, "toggle": true, - "toggleRedirect": "/kls-training/training-request-part-1", + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "name": "UKHSA Knowledge and Library Services (KLS)", + "toggleRedirect": "/kls-training-request/training-request-part-1", "magicLinkConfig": "kls-training-magic-link", "allowedDomains": [ "ukhsa.gov.uk", @@ -14,8 +16,7 @@ "gov.uk" ], "invalidDomainRedirect": "/kls-training-magic-link/your-email-is-not-on-our-approved-list", - "serviceName": "Knowledge and Library Services", - "fullStartPage": "/kls-training/start", + "fullStartPage": "/kls-training-request/start", "pages": [ { "path": "/start", @@ -28,7 +29,7 @@ "unauthenticated": true, "continueButtonText": "Continue", "showContinueButton": true, - "backLinkFallback": "/kls-training/training-request-part-1", + "backLinkFallback": "/kls-training-request/training-request-part-1", "components": [ { "name": "EmailIntro", @@ -168,7 +169,7 @@ "name": "EmailConfirmed", "options": {}, "type": "Para", - "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", "schema": {} } ] @@ -239,7 +240,7 @@ ], "feedback": { "feedbackForm": true, - "url": "/feedback" + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" }, "version": 2, "feeOptions": { @@ -248,4 +249,4 @@ "showPaymentSkippedWarningPage": false }, "jwtKey": "${KLSTrainingJwtKey}" -} +} \ No newline at end of file diff --git a/runner/src/server/forms/kls-training.json b/runner/src/server/forms/kls-training-request.json similarity index 98% rename from runner/src/server/forms/kls-training.json rename to runner/src/server/forms/kls-training-request.json index f654ca4f70..f0d3f51e35 100644 --- a/runner/src/server/forms/kls-training.json +++ b/runner/src/server/forms/kls-training-request.json @@ -1,10 +1,11 @@ { "metadata": {}, "startPage": "/start", - "fullStartPage": "/kls-training/start", + "fullStartPage": "/kls-training-request/start", "authentication": true, "toggle": true, - "serviceName": "Knowledge and Library Services", + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "name": "UKHSA Knowledge and Library Services (KLS)", "magicLinkConfig": "kls-training-magic-link", "webhookHmacSharedKey": "${KLSTrainingKey}", "pages": [ @@ -115,14 +116,14 @@ "options": { "required": true, "customValidationMessages": { - "number.base": "Enter number of participants", - "number.min": "Number of participants must be greater than 0" + "number.base": "Enter number of participants", + "number.min": "Number of participants must be greater than 0" } }, "hint": "Enter number of participants", "type": "NumberField", "title": "What is the approximate number of participants?", - "schema": { + "schema": { "min": 1 } }, @@ -926,15 +927,15 @@ ], "fees": [], "outputs": [ - { + { "name": "eBBQeD", "title": "test-output", "type": "webhook", "outputConfiguration": { "url": "${KLSTrainingWebhook}", "allowRetry": true - } - } + } + } ], "version": 2, "skipSummary": false, @@ -943,5 +944,9 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, + "feedback": { + "feedbackForm": true, + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" + }, "jwtKey": "${KLSTrainingJwtKey}" } \ No newline at end of file diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index bdf1b8685b..7b41b6ae33 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -843,16 +843,26 @@ export class PageControllerBase { } feedbackUrlFromRequest(request: HapiRequest): string | void { - if (this.def.feedback?.url) { - let feedbackLink = new RelativeUrl(this.def.feedback.url); + const feedbackUrl = this.model.def.feedback?.url; + if (feedbackUrl) { + if (feedbackUrl.startsWith("http")) { + return feedbackUrl; + } + + const relativeFeedbackUrl = new RelativeUrl(feedbackUrl); const returnInfo = new FeedbackContextInfo( this.model.name, this.pageDef.title, `${request.url.pathname}${request.url.search}` ); - feedbackLink.setParam(feedbackReturnInfoKey, returnInfo.toString()); - return feedbackLink.toString(); + relativeFeedbackUrl.setParam( + feedbackReturnInfoKey, + returnInfo.toString() + ); + return relativeFeedbackUrl.toString(); } + + return undefined; } makeGetRoute() { diff --git a/runner/src/server/views/kls-enquiries/accessibility-statement.html b/runner/src/server/views/kls-enquiries/accessibility-statement.html new file mode 100644 index 0000000000..a85603a367 --- /dev/null +++ b/runner/src/server/views/kls-enquiries/accessibility-statement.html @@ -0,0 +1,26 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the KLS Website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). +

    + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-enquiries/cookies.html b/runner/src/server/views/kls-enquiries/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-enquiries/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-enquiries/privacy.html b/runner/src/server/views/kls-enquiries/privacy.html new file mode 100644 index 0000000000..ef0acbad57 --- /dev/null +++ b/runner/src/server/views/kls-enquiries/privacy.html @@ -0,0 +1,161 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +

    +

    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-magic-link/accessibility-statement.html b/runner/src/server/views/kls-magic-link/accessibility-statement.html new file mode 100644 index 0000000000..4011fa2329 --- /dev/null +++ b/runner/src/server/views/kls-magic-link/accessibility-statement.html @@ -0,0 +1,26 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the Knowledge and Library Services website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). +

    + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-magic-link/cookies.html b/runner/src/server/views/kls-magic-link/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-magic-link/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-magic-link/privacy.html b/runner/src/server/views/kls-magic-link/privacy.html new file mode 100644 index 0000000000..ef0acbad57 --- /dev/null +++ b/runner/src/server/views/kls-magic-link/privacy.html @@ -0,0 +1,161 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +

    +

    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/accessibility-statement.html b/runner/src/server/views/kls-training-magic-link/accessibility-statement.html new file mode 100644 index 0000000000..9c23f0bcc9 --- /dev/null +++ b/runner/src/server/views/kls-training-magic-link/accessibility-statement.html @@ -0,0 +1,26 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the KLS website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). +

    + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/cookies.html b/runner/src/server/views/kls-training-magic-link/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-training-magic-link/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/privacy.html b/runner/src/server/views/kls-training-magic-link/privacy.html new file mode 100644 index 0000000000..b2a672941f --- /dev/null +++ b/runner/src/server/views/kls-training-magic-link/privacy.html @@ -0,0 +1,176 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +

    + UKHSA’s responsibilities include providing the Report an outbreak service. Read about UKHSA’s responsibilities in the UKHSA strategic plan 2023 to 2026 (opens in new tab). +

    + The 'Report an outbreak' service enables Adult Social Care (ASC) providers to report outbreaks of acute respiratory infection (ARI) like flu or COVID-19. It automates the outbreak risk assessment process and provides immediate relevant outbreak management advice to the setting via email. +

    + This privacy notice explains what personal information we collect, use and may share for Report an outbreak. It explains what your rights are if we hold your personal information, and how you can find out more or raise a concern. +

    + DHSC is the data controller for the personal information we collect, store and use to fulfil our remit. +

    +

    The information we collect

    +

    + During an outbreak, the local health protection team needs to collect personal information so they can quickly provide the care setting with relevant outbreak management advice. +

    + The personal information we collect and use includes the reporter’s (and an optional additional contact person’s): +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +

    +

    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-request/accessibility-statement.html b/runner/src/server/views/kls-training-request/accessibility-statement.html new file mode 100644 index 0000000000..0ac50c1778 --- /dev/null +++ b/runner/src/server/views/kls-training-request/accessibility-statement.html @@ -0,0 +1,96 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the KLS website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). +

    + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +

    +

      +
    • change colours, contrast levels and fonts using browser or device settings
    • +
    • zoom in up to 400% without the text spilling off the screen
    • +
    • navigate most of the website using a keyboard or speech recognition software
    • +
    • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
    • +
    +

    +

    + We’ve also made the website text as simple as possible to understand. +
    + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

    +

    How accessible this website is

    +

    + We know some parts of this website are not fully accessible: + +

      +
    • you cannot modify the line height or spacing of text
    • +
    • you cannot skip to the main content when using a screen reader
    • +
    +

    +

    Feedback and contact information

    +

    + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
    +

    +

    + If you have difficulty using the website to report an outbreak, you should phone your local UKHSA health protection team (opens in new tab). +

    +

    Enforcement procedure

    +

    + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

    +

    Technical information about this website’s accessibility

    +

    + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

    +

    Compliance status

    +

    + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

    +

    Non-accessible content

    +

    + The content listed below is non-accessible for the following reasons.  +

    +

    Non-compliance with the accessibility regulations

    +

    + Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
    +
    + There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

    + External links do not signal that they will open in a new tab, so people using a screen reader do not know that the page content is changing. This fails WCAG success criterion 4.1.3 (status changes)
    +
    + We plan to address these issues soon. +

    +

    Content that’s not within the scope of accessibility regulations

    +

    + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

    +

    What we’re doing to improve accessibility

    +

    + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

    +

    Preparation of this accessibility statement

    +

    + This statement was prepared in October 2023. It was last reviewed in April 2025.
    + This website was last tested in March 2025 against the WCAG 2.2 AA standard.
    + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-request/cookies.html b/runner/src/server/views/kls-training-request/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-training-request/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-request/privacy.html b/runner/src/server/views/kls-training-request/privacy.html new file mode 100644 index 0000000000..ef0acbad57 --- /dev/null +++ b/runner/src/server/views/kls-training-request/privacy.html @@ -0,0 +1,161 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. +Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. +Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. +Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. +Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +

    +

    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} From bdf36ed4b8a7e7bbf58c6a502d233fb135006a32 Mon Sep 17 00:00:00 2001 From: Tony Gallone Date: Wed, 2 Jul 2025 15:56:06 +0100 Subject: [PATCH 320/403] Updated the value sent to SalesForce when selecting supply issues related to COVID-19. Removed the comma because this breaks the SalesForce mapping integration --- runner/src/server/forms/ReportAnOutbreak.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 32b2f02b2f..a503b831be 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3370,11 +3370,11 @@ "items": [ { "text": "COVID-19: access to treatments", - "value": "COVID-19: access to treatments" + "value": "COVID-19 - access to treatments" }, { "text": "COVID-19: LFD test kit supply", - "value": "COVID-19: LFD test kit supply" + "value": "COVID-19 - LFD test kit supply" }, { "text": "Hand hygiene", From 8db7671469ec81be42936c7a7d455706519f17ab Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:26:20 +0100 Subject: [PATCH 321/403] LOPS3-387 Hard code AWS region (#418) --- .github/workflows/pull-request.yml | 88 +++++++++++++++--------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 6667e737d0..d8f0edffb3 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,49 +1,49 @@ name: Pull Request Validation on: - pull_request: - branches: - - '**' + pull_request: + branches: + - "**" jobs: - build-docker: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - path: builder - - - name: Configure AWS Credentials - id: aws-creds - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-region: ${{ secrets.AWS_REGION }} - aws-access-key-id: ${{secrets.ACCESS_KEY_ID}} - aws-secret-access-key: ${{secrets.SECRET_ACCESS_KEY}} - - - name: Login to ECR - uses: docker/login-action@v2 - with: - registry: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{secrets.AWS_REGION}}.amazonaws.com - ecr: true - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Validate build configuration - uses: docker/build-push-action@v6 - with: - call: check - context: ./builder - file: ./builder/runner/Dockerfile - - - name: Build and push - uses: docker/build-push-action@v4 - with: - push: false - tags: user/app:latest - context: ./builder - file: ./builder/runner/Dockerfile - platforms: linux/amd64 + build-docker: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + path: builder + + - name: Configure AWS Credentials + id: aws-creds + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: eu-west-2 + aws-access-key-id: ${{secrets.ACCESS_KEY_ID}} + aws-secret-access-key: ${{secrets.SECRET_ACCESS_KEY}} + + - name: Login to ECR + uses: docker/login-action@v2 + with: + registry: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{secrets.AWS_REGION}}.amazonaws.com + ecr: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Validate build configuration + uses: docker/build-push-action@v6 + with: + call: check + context: ./builder + file: ./builder/runner/Dockerfile + + - name: Build and push + uses: docker/build-push-action@v4 + with: + push: false + tags: user/app:latest + context: ./builder + file: ./builder/runner/Dockerfile + platforms: linux/amd64 From 75f6a0bbf34977562e874373d8a4b386729cbf9e Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 4 Jul 2025 15:36:03 +0100 Subject: [PATCH 322/403] Update sectionsOnlyAndCardConversion.ts --- .../summaryDetails/sectionsOnlyAndCardConversion.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts index 0769f92473..d3e3c169b4 100644 --- a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts +++ b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts @@ -1,9 +1,12 @@ -export function sectionsOnlyAndCardConversion(details) { +export function filterSections(details) { return details .filter((detail) => detail.name) .map((detail) => { - const { url } = detail.items[0]; - if (detail.name.match(/\w\d/)) return { ...detail, card: url }; + if (detail.name.match(/\w\d/)) { + detail.card = detail.items.find((item) => item.inError) + ? detail.items[0].pageId + : detail.items[0].url; + } return detail; }); } From 44a790fe696e8da15510adc0acad60c9251467db Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 4 Jul 2025 15:37:36 +0100 Subject: [PATCH 323/403] Update sectionsOnlyAndCardConversion.ts --- .../transforms/summaryDetails/sectionsOnlyAndCardConversion.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts index d3e3c169b4..b3f5cf30d0 100644 --- a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts +++ b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts @@ -1,4 +1,4 @@ -export function filterSections(details) { +export function sectionsOnlyAndCardConversion(details) { return details .filter((detail) => detail.name) .map((detail) => { From f4b971a7cbe9a2003457218f0e713a01f177744d Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 7 Jul 2025 10:49:28 +0100 Subject: [PATCH 324/403] Update multiple forms --- .../forms/close-contact-form-hpt-nl5.json | 6646 ++++++++--------- .../forms/close-contact-form-hpt-uat.json | 22 +- .../server/forms/close-contact-form-hpt.json | 22 +- .../server/forms/close-contact-form-nl5.json | 6644 ++++++++-------- .../server/forms/close-contact-form-uat.json | 22 +- .../src/server/forms/close-contact-form.json | 22 +- 6 files changed, 6689 insertions(+), 6689 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 5eb66a23fa..efb28e2cf7 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -1,3323 +1,3323 @@ -{ - "metadata": {}, - "startPage": "/start", - "pages": [ - { - "title": "Identify close contacts of bird flu", - "path": "/start", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", - "schema": {} - }, - { - "name": "tKEFcw", - "options": {}, - "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", - "schema": {} - }, - { - "name": "QlWuFo", - "options": {}, - "type": "Para", - "content": "It should take about 10 minutes to complete.", - "schema": {} - }, - { - "name": "ifAKep", - "options": {}, - "type": "Html", - "content": "

    Before you start

    ", - "schema": {} - }, - { - "name": "VCwJTN", - "options": {}, - "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", - "schema": {} - }, - { - "name": "ksyXub", - "options": {}, - "type": "List", - "title": "Details required", - "list": "rcWCzy", - "schema": {} - }, - { - "name": "Qkjtcn", - "options": {}, - "type": "Para", - "content": "You will need the details of the close contacts ready.", - "schema": {} - }, - { - "name": "TqEyQM", - "options": {}, - "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", - "schema": {} - }, - { - "name": "gfOVOL", - "options": {}, - "type": "Html", - "content": "

    If you need help completing this form

    ", - "schema": {} - }, - { - "name": "jmslVl", - "options": {}, - "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", - "schema": {} - }, - { - "name": "disease_name", - "options": { - "allowPrePopulation": true, - "allowPrePopulationOverwrite": true, - "classes": "govuk-visually-hidden", - "hideTitle": true, - "disableChangingFromSummary": true, - "required": false - }, - "type": "TextField", - "title": "Disease", - "schema": {} - } - ], - "next": [{ "path": "/case-id" }], - "controller": "./pages/start.js" - }, - { - "path": "/case-id", - "title": "Enter the case ID of the person who needs contact tracing", - "components": [ - { - "name": "case_id", - "options": {}, - "type": "TextField", - "title": "Case ID", - "schema": {} - } - ], - "next": [{ "path": "/personal-details" }], - "section": "CaseID" - }, - { - "path": "/personal-details", - "title": "Personal details", - "components": [ - { - "name": "lcOnmo", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "pcOnmo", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "phone_number", - "options": {}, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "email_address", - "options": { "required": false }, - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "PersonalDetails" - }, - { - "path": "/other-persons-details", - "title": "Other person's details", - "components": [ - { - "name": "lcOnmo", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "pcOnmo", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "TLaaZQ", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " - }, - { - "name": "phone_number", - "options": {}, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "email_address", - "options": { "required": false }, - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} - }, - { - "name": "JJOVvQ", - "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} - } - ], - "next": [{ "path": "/close-contact" }], - "section": "PersonalDetails" - }, - { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", - "components": [ - { - "name": "EiNVay", - "options": {}, - "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" - }, - { - "name": "TCnLHZ", - "options": {}, - "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" - }, - { - "name": "been_in_contact", - "options": { - "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" - }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } - ], - "section": "BeenInContact" - }, - { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", - "components": [ - { - "name": "EiNVay", - "options": {}, - "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" - }, - { - "name": "TCnLHZ", - "options": {}, - "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" - }, - { - "name": "been_in_contact", - "options": { - "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" - }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } - ], - "section": "BeenInContact" - }, - { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" - }, - { - "path": "/close-contact-added-1", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson1", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" - }, - { - "path": "/close-contact-added-2", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson2", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" - }, - { - "path": "/close-contact-added-3", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson3", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" - }, - { - "path": "/close-contact-added-4", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson4", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" - }, - { - "path": "/close-contact-added-5", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson5", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" - }, - { - "path": "/close-contact-added-6", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson6", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" - }, - { - "path": "/close-contact-added-7", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson7", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" - }, - { - "path": "/close-contact-added-8", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson8", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" - }, - { - "path": "/close-contact-added-9", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson9", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" - }, - { - "path": "/close-contact-added-10", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" - }, - { - "path": "/close-contact-added-11", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson11", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" - }, - { - "path": "/close-contact-added-12", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson12", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" - }, - { - "path": "/close-contact-added-13", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson13", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" - }, - { - "path": "/close-contact-added-14", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson14", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" - }, - { - "path": "/close-contact-added-15", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson15", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" - }, - { - "path": "/close-contact-added-16", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson16", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" - }, - { - "path": "/close-contact-added-17", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson17", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" - }, - { - "path": "/close-contact-added-18", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson18", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" - }, - { - "path": "/close-contact-added-19", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson19", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/summary" }], - "section": "CloseContact20" - }, - { - "path": "/summary", - "title": "Check the details before submitting", - "components": [], - "next": [], - "controller": "./pages/summary.js" - } - ], - "lists": [ - { - "title": "Start list 1", - "name": "yRnBmv", - "type": "string", - "items": [ - { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" - }, - { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" - } - ] - }, - { - "title": "Who are you completing this form for?", - "name": "AVoXlG", - "type": "string", - "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } - ] - }, - { - "title": "Who we should follow up with", - "name": "lNoBeE", - "type": "string", - "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } - ] - }, - { - "title": "Close contact (other) list", - "name": "oDwqlv", - "type": "string", - "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, - { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" - }, - { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" - } - ] - }, - { - "title": "Close contact (you) list", - "name": "yDwqlv", - "type": "string", - "items": [ - { "text": "people you live with", "value": "people you live with" }, - { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" - }, - { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" - }, - { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" - }, - { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" - } - ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] - } - ], - "sections": [ - { - "name": "PersonalDetails", - "title": "Personal details", - "hideTitle": true - }, - { - "name": "YourDetails", - "title": "Enter your details", - "hideTitle": false - }, - { - "name": "TheirDetails", - "title": "Enter the details for the person who is being contact traced", - "hideTitle": false - }, - { - "name": "CaseID", - "title": "Case ID", - "hideTitle": true - }, - { - "name": "BeenInContact", - "title": "Close contacts", - "hideTitle": true - }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, - { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false - }, - { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false - }, - { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false - }, - { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false - }, - { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false - }, - { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false - }, - { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false - }, - { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false - }, - { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false - }, - { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false - }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } - ], - "conditions": [ - { - "displayName": "If someone else", - "name": "lGzwuI", - "value": { - "name": "If someone else", - "conditions": [ - { - "field": { - "name": "PersonalDetails.completing_form_for", - "type": "RadiosField", - "display": "Who this form is for" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } - } - ] - } - }, - { - "displayName": "If myself", - "name": "SypzMi", - "value": { - "name": "If myself", - "conditions": [ - { - "field": { - "name": "PersonalDetails.completing_form_for", - "type": "RadiosField", - "display": "Who this form is for" - }, - "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } - } - ] - } - }, - { - "displayName": "If contacts", - "name": "IfContactsYes", - "value": { - "name": "If contacts needed", - "conditions": [ - { - "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } - } - ] - } - }, - { - "displayName": "If no contacts", - "name": "IfContactsNo", - "value": { - "name": "If no contacts needed", - "conditions": [ - { - "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson1", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson1", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson2", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson2", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson3", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson3", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson4", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson4", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson5", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson5", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson6", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson6", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson7", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson7", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson8", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson8", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson9", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson9", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson10", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson10", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson11", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson11", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson12", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson12", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson13", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson13", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson14", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson14", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson15", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson15", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson16", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson16", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson17", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson17", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson18", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson18", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson19", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson19", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson20", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson20", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - } - ], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, - "feedback": {} -} +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index 930ff2ce24..1f1e266829 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -185,7 +185,7 @@ { "path": "/other-persons-details", "condition": "lGzwuI" }, { "path": "/close-contact-you", "condition": "SypzMi" } ], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/other-persons-details", @@ -265,7 +265,7 @@ } ], "next": [{ "path": "/close-contact" }], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/close-contact", @@ -2412,19 +2412,19 @@ } ], "sections": [ - { - "name": "PersonalDetails", - "title": "Personal details", - "hideTitle": true - }, { "name": "YourDetails", - "title": "Enter your details", + "title": "Your details", "hideTitle": false }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, { "name": "TheirDetails", - "title": "Enter the details for the person who is being contact traced", + "title": "Details for the person who is being contact traced", "hideTitle": false }, { @@ -2511,7 +2511,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, @@ -2533,7 +2533,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, diff --git a/runner/src/server/forms/close-contact-form-hpt.json b/runner/src/server/forms/close-contact-form-hpt.json index 645f5955c2..1943272c89 100644 --- a/runner/src/server/forms/close-contact-form-hpt.json +++ b/runner/src/server/forms/close-contact-form-hpt.json @@ -185,7 +185,7 @@ { "path": "/other-persons-details", "condition": "lGzwuI" }, { "path": "/close-contact-you", "condition": "SypzMi" } ], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/other-persons-details", @@ -265,7 +265,7 @@ } ], "next": [{ "path": "/close-contact" }], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/close-contact", @@ -2412,19 +2412,19 @@ } ], "sections": [ - { - "name": "PersonalDetails", - "title": "Personal details", - "hideTitle": true - }, { "name": "YourDetails", - "title": "Enter your details", + "title": "Your details", "hideTitle": false }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, { "name": "TheirDetails", - "title": "Enter the details for the person who is being contact traced", + "title": "Details for the person who is being contact traced", "hideTitle": false }, { @@ -2511,7 +2511,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, @@ -2533,7 +2533,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 438fa4983e..e0039bdd7d 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -1,3322 +1,3322 @@ -{ - "metadata": {}, - "startPage": "/start", - "pages": [ - { - "title": "Identify close contacts of bird flu", - "path": "/start", - "components": [ - { - "name": "ooHdDj", - "options": {}, - "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", - "schema": {} - }, - { - "name": "tKEFcw", - "options": {}, - "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", - "schema": {} - }, - { - "name": "QlWuFo", - "options": {}, - "type": "Para", - "content": "It should take about 10 minutes to complete.", - "schema": {} - }, - { - "name": "ifAKep", - "options": {}, - "type": "Html", - "content": "

    Before you start

    ", - "schema": {} - }, - { - "name": "VCwJTN", - "options": {}, - "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", - "schema": {} - }, - { - "name": "ksyXub", - "options": {}, - "type": "List", - "title": "Details required", - "list": "rcWCzy", - "schema": {} - }, - { - "name": "Qkjtcn", - "options": {}, - "type": "Para", - "content": "You will need the details of the close contacts ready.", - "schema": {} - }, - { - "name": "TqEyQM", - "options": {}, - "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", - "schema": {} - }, - { - "name": "gfOVOL", - "options": {}, - "type": "Html", - "content": "

    If you need help completing this form

    ", - "schema": {} - }, - { - "name": "jmslVl", - "options": {}, - "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", - "schema": {} - }, - { - "name": "disease_name", - "options": { - "allowPrePopulation": true, - "allowPrePopulationOverwrite": true, - "classes": "govuk-visually-hidden", - "hideTitle": true, - "disableChangingFromSummary": true, - "required": false - }, - "type": "TextField", - "title": "Disease", - "schema": {} - }, - { - "name": "reference_id", - "options": { - "allowPrePopulation": true, - "allowPrePopulationOverwrite": true, - "classes": "govuk-visually-hidden", - "hideTitle": true, - "disableChangingFromSummary": true, - "required": false - }, - "type": "TextField", - "title": "Reference ID", - "schema": {} - } - ], - "next": [{ "path": "/personal-details" }], - "controller": "./pages/start.js" - }, - { - "path": "/personal-details", - "title": "Personal details", - "components": [ - { - "name": "lcOnmo", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "pcOnmo", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "phone_number", - "options": {}, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "email_address", - "options": { "required": false }, - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "PersonalDetails" - }, - { - "path": "/other-persons-details", - "title": "Other person's details", - "components": [ - { - "name": "lcOnmo", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "pcOnmo", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "TLaaZQ", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " - }, - { - "name": "phone_number", - "options": {}, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "email_address", - "options": { "required": false }, - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} - }, - { - "name": "JJOVvQ", - "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} - } - ], - "next": [{ "path": "/close-contact" }], - "section": "PersonalDetails" - }, - { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", - "components": [ - { - "name": "EiNVay", - "options": {}, - "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" - }, - { - "name": "TCnLHZ", - "options": {}, - "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" - }, - { - "name": "been_in_contact", - "options": { - "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" - }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } - ], - "section": "BeenInContact" - }, - { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", - "components": [ - { - "name": "EiNVay", - "options": {}, - "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" - }, - { - "name": "TCnLHZ", - "options": {}, - "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" - }, - { - "name": "been_in_contact", - "options": { - "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" - }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } - ], - "section": "BeenInContact" - }, - { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" - }, - { - "path": "/close-contact-added-1", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson1", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" - }, - { - "path": "/close-contact-added-2", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson2", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" - }, - { - "path": "/close-contact-added-3", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson3", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" - }, - { - "path": "/close-contact-added-4", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson4", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" - }, - { - "path": "/close-contact-added-5", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson5", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" - }, - { - "path": "/close-contact-added-6", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson6", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" - }, - { - "path": "/close-contact-added-7", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson7", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" - }, - { - "path": "/close-contact-added-8", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson8", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" - }, - { - "path": "/close-contact-added-9", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson9", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" - }, - { - "path": "/close-contact-added-10", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" - }, - { - "path": "/close-contact-added-11", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson11", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" - }, - { - "path": "/close-contact-added-12", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson12", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" - }, - { - "path": "/close-contact-added-13", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson13", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" - }, - { - "path": "/close-contact-added-14", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson14", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" - }, - { - "path": "/close-contact-added-15", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson15", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" - }, - { - "path": "/close-contact-added-16", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson16", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" - }, - { - "path": "/close-contact-added-17", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson17", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" - }, - { - "path": "/close-contact-added-18", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson18", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" - }, - { - "path": "/close-contact-added-19", - "title": "Close contact", - "components": [ - { - "name": "AnotherPersonSubheading", - "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} - }, - { - "name": "AnotherPerson19", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, - "type": "YesNoField", - "title": "'Yes' if there is another close contact", - "schema": {} - } - ], - "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } - ], - "controller": "RepeatingSectionSummaryPageController" - }, - { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", - "components": [ - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Personal details

    " - }, - { - "name": "contact_first_name", - "options": {}, - "type": "TextField", - "title": "First name", - "schema": {} - }, - { - "name": "contact_last_name", - "options": {}, - "type": "TextField", - "title": "Last name", - "schema": {} - }, - { - "name": "Subheader", - "options": {}, - "type": "Html", - "content": "

    Contact details

    " - }, - { - "name": "ContactWarningText", - "options": {}, - "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " - }, - { - "name": "ContactHintText", - "options": {}, - "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} - }, - { - "name": "contact_phone_number", - "options": { "required": false, "optionalText": false }, - "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", - "schema": {} - }, - { - "name": "contact_email", - "options": { "required": false, "optionalText": false }, - "type": "EmailAddressField", - "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} - }, - { - "name": "ValidationScript", - "options": {}, - "type": "Html", - "content": "" - } - ], - "next": [{ "path": "/summary" }], - "section": "CloseContact20" - }, - { - "path": "/summary", - "title": "Check the details before submitting", - "components": [], - "next": [], - "controller": "./pages/summary.js" - } - ], - "lists": [ - { - "title": "Start list 1", - "name": "yRnBmv", - "type": "string", - "items": [ - { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" - }, - { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" - } - ] - }, - { - "title": "Who are you completing this form for?", - "name": "AVoXlG", - "type": "string", - "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } - ] - }, - { - "title": "Who we should follow up with", - "name": "lNoBeE", - "type": "string", - "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } - ] - }, - { - "title": "Close contact (other) list", - "name": "oDwqlv", - "type": "string", - "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, - { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" - }, - { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" - } - ] - }, - { - "title": "Close contact (you) list", - "name": "yDwqlv", - "type": "string", - "items": [ - { "text": "people you live with", "value": "people you live with" }, - { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" - }, - { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" - }, - { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" - }, - { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" - } - ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] - } - ], - "sections": [ - { - "name": "PersonalDetails", - "title": "Personal details", - "hideTitle": true - }, - { - "name": "YourDetails", - "title": "Enter your details", - "hideTitle": false - }, - { - "name": "TheirDetails", - "title": "Enter the details for the person who is being contact traced", - "hideTitle": false - }, - { - "name": "CaseID", - "title": "Case ID", - "hideTitle": true - }, - { - "name": "BeenInContact", - "title": "Close contacts", - "hideTitle": true - }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, - { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false - }, - { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false - }, - { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false - }, - { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false - }, - { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false - }, - { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false - }, - { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false - }, - { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false - }, - { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false - }, - { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false - }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } - ], - "conditions": [ - { - "displayName": "If someone else", - "name": "lGzwuI", - "value": { - "name": "If someone else", - "conditions": [ - { - "field": { - "name": "PersonalDetails.completing_form_for", - "type": "RadiosField", - "display": "Who this form is for" - }, - "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } - } - ] - } - }, - { - "displayName": "If myself", - "name": "SypzMi", - "value": { - "name": "If myself", - "conditions": [ - { - "field": { - "name": "PersonalDetails.completing_form_for", - "type": "RadiosField", - "display": "Who this form is for" - }, - "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } - } - ] - } - }, - { - "displayName": "If contacts", - "name": "IfContactsYes", - "value": { - "name": "If contacts needed", - "conditions": [ - { - "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } - } - ] - } - }, - { - "displayName": "If no contacts", - "name": "IfContactsNo", - "value": { - "name": "If no contacts needed", - "conditions": [ - { - "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" - }, - "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson1", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson1", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson2", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson2", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson3", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson3", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson4", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson4", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson5", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson5", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson6", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson6", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson7", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson7", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson8", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson8", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson9", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson9", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson10", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson10", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson11", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson11", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson12", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson12", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson13", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson13", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson14", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson14", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson15", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson15", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson16", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson16", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson17", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson17", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson18", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson18", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson19", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson19", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - }, - { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", - "value": { - "name": "If more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson20", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "true", "display": "true" } - } - ] - } - }, - { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", - "value": { - "name": "If no more contacts needed", - "conditions": [ - { - "field": { - "name": "AnotherPerson20", - "type": "YesNoField", - "display": "'Yes' if there is another close contact" - }, - "operator": "is", - "value": { "type": "Value", "value": "false", "display": "false" } - } - ] - } - } - ], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, - "feedback": {} -} +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 3b078aacbe..cf543a41b5 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -184,7 +184,7 @@ { "path": "/other-persons-details", "condition": "lGzwuI" }, { "path": "/close-contact-you", "condition": "SypzMi" } ], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/other-persons-details", @@ -264,7 +264,7 @@ } ], "next": [{ "path": "/close-contact" }], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/close-contact", @@ -2411,19 +2411,19 @@ } ], "sections": [ - { - "name": "PersonalDetails", - "title": "Personal details", - "hideTitle": true - }, { "name": "YourDetails", - "title": "Enter your details", + "title": "Your details", "hideTitle": false }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, { "name": "TheirDetails", - "title": "Enter the details for the person who is being contact traced", + "title": "Details for the person who is being contact traced", "hideTitle": false }, { @@ -2510,7 +2510,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, @@ -2532,7 +2532,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index 84df5eeb0f..3ed9f67ac4 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -184,7 +184,7 @@ { "path": "/other-persons-details", "condition": "lGzwuI" }, { "path": "/close-contact-you", "condition": "SypzMi" } ], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/other-persons-details", @@ -264,7 +264,7 @@ } ], "next": [{ "path": "/close-contact" }], - "section": "PersonalDetails" + "section": "WhoThisFormIsFor" }, { "path": "/close-contact", @@ -2411,19 +2411,19 @@ } ], "sections": [ - { - "name": "PersonalDetails", - "title": "Personal details", - "hideTitle": true - }, { "name": "YourDetails", - "title": "Enter your details", + "title": "Your details", "hideTitle": false }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, { "name": "TheirDetails", - "title": "Enter the details for the person who is being contact traced", + "title": "Details for the person who is being contact traced", "hideTitle": false }, { @@ -2510,7 +2510,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, @@ -2532,7 +2532,7 @@ "conditions": [ { "field": { - "name": "PersonalDetails.completing_form_for", + "name": "WhoThisFormIsFor.completing_form_for", "type": "RadiosField", "display": "Who this form is for" }, From 75a7e4d00a2e13b26b29c88024c2bca533a5cdc9 Mon Sep 17 00:00:00 2001 From: kitttang Date: Tue, 8 Jul 2025 15:02:12 +0100 Subject: [PATCH 325/403] fixing summary page feedback (#425) --- .../pageControllers/CustomSummaryPageController.ts | 13 +++++++++---- .../engine/pageControllers/SummaryPageController.ts | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts index 3c620e5b4b..3dbd60b324 100644 --- a/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts @@ -348,15 +348,20 @@ export class CustomSummaryPageController extends PageController { } feedbackUrlFromRequest(request: HapiRequest) { - if (this.model.def.feedback?.url) { - let feedbackLink = new RelativeUrl(this.model.def.feedback.url); + const feedbackUrl = this.model.def.feedback?.url; + if (feedbackUrl) { + if (feedbackUrl.startsWith("http")) { + return feedbackUrl; + } + + const relativeFeedbackUrl = new RelativeUrl(feedbackUrl); const returnInfo = new FeedbackContextInfo( this.model.name, "Summary", `${request.url.pathname}${request.url.search}` ); - feedbackLink.setParam(feedbackReturnInfoKey, returnInfo.toString()); - return feedbackLink.toString(); + relativeFeedbackUrl.setParam(feedbackReturnInfoKey, returnInfo.toString()); + return relativeFeedbackUrl.toString(); } return undefined; diff --git a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts index 077a8a5c26..661af88a3b 100644 --- a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts @@ -265,15 +265,20 @@ export class SummaryPageController extends PageController { } feedbackUrlFromRequest(request: HapiRequest) { - if (this.model.def.feedback?.url) { - let feedbackLink = new RelativeUrl(this.model.def.feedback.url); + const feedbackUrl = this.model.def.feedback?.url; + if (feedbackUrl) { + if (feedbackUrl.startsWith("http")) { + return feedbackUrl; + } + + const relativeFeedbackUrl = new RelativeUrl(feedbackUrl); const returnInfo = new FeedbackContextInfo( this.model.name, "Summary", `${request.url.pathname}${request.url.search}` ); - feedbackLink.setParam(feedbackReturnInfoKey, returnInfo.toString()); - return feedbackLink.toString(); + relativeFeedbackUrl.setParam(feedbackReturnInfoKey, returnInfo.toString()); + return relativeFeedbackUrl.toString(); } return undefined; From fe21686dd79f5c9934d89cc62c3e67fb1d6423b1 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 14 Jul 2025 22:33:06 +0100 Subject: [PATCH 326/403] Delete runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts --- .../summaryDetails/sectionsOnlyAndCardConversion.ts | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts diff --git a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts b/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts deleted file mode 100644 index b3f5cf30d0..0000000000 --- a/runner/src/server/transforms/summaryDetails/sectionsOnlyAndCardConversion.ts +++ /dev/null @@ -1,12 +0,0 @@ -export function sectionsOnlyAndCardConversion(details) { - return details - .filter((detail) => detail.name) - .map((detail) => { - if (detail.name.match(/\w\d/)) { - detail.card = detail.items.find((item) => item.inError) - ? detail.items[0].pageId - : detail.items[0].url; - } - return detail; - }); -} From 0b04786712fbc1d9a1b7895eb60e1c0ba0704b8f Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 14 Jul 2025 22:33:59 +0100 Subject: [PATCH 327/403] Add files via upload --- .../summaryDetails/filterSections.ts | 12 ++++ .../server/transforms/summaryDetails/index.ts | 69 +++++++++++++------ .../transforms/summaryDetails/mergeRows.ts | 33 +++++++++ 3 files changed, 94 insertions(+), 20 deletions(-) create mode 100644 runner/src/server/transforms/summaryDetails/filterSections.ts create mode 100644 runner/src/server/transforms/summaryDetails/mergeRows.ts diff --git a/runner/src/server/transforms/summaryDetails/filterSections.ts b/runner/src/server/transforms/summaryDetails/filterSections.ts new file mode 100644 index 0000000000..383912d68b --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/filterSections.ts @@ -0,0 +1,12 @@ +export function filterSections(details) { + return details + .filter((detail) => detail.name) + .map((detail) => { + if (detail.name.match(/\w\d/)) { + detail.card = detail.items.find((item) => item.inError) + ? detail.items[0].pageId + : detail.items[0].url; + } + return detail; + }); +} diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 27c72eef7c..ee6dc73ffb 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -1,20 +1,49 @@ -"use strict"; - -import { sectionsOnlyAndCardConversion } from "./sectionsOnlyAndCardConversion"; - -import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; -export { SummaryDetailsTransformationMap }; - -/** - * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) - */ -const summaryDetailsTransformations: SummaryDetailsTransformationMap = { - "close-contact-form": sectionsOnlyAndCardConversion, - "close-contact-form-uat": sectionsOnlyAndCardConversion, - "close-contact-form-nl5": sectionsOnlyAndCardConversion, - "close-contact-form-hpt": sectionsOnlyAndCardConversion, - "close-contact-form-hpt-uat": sectionsOnlyAndCardConversion, - "close-contact-form-hpt-nl5": sectionsOnlyAndCardConversion, -}; - -module.exports = summaryDetailsTransformations; +"use strict"; + +import { mergeRows } from "./mergeRows"; +import { filterSections } from "./filterSections"; + +import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; +export { SummaryDetailsTransformationMap }; + +/** + * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) + */ + +const mergeRowsParams1 = [ + { names: ["first_name", "last_name"], to: "Full name", joiner: " " }, + { + names: ["mobile_number", "landline_number", "email_address"], + to: "Contact details", + joiner: "\n", + }, +]; + +const summaryDetailsTransformations: SummaryDetailsTransformationMap = { + "close-contact-form": (details) => { + const firstTransform = mergeRows(details, mergeRowsParams1); + return filterSections(firstTransform); + }, + "close-contact-form-uat": (details) => { + const firstTransform = mergeRows(details, mergeRowsParams1); + return filterSections(firstTransform); + }, + "close-contact-form-nl5": (details) => { + const firstTransform = mergeRows(details, mergeRowsParams1); + return filterSections(firstTransform); + }, + "close-contact-form-hpt": (details) => { + const firstTransform = mergeRows(details, mergeRowsParams1); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-uat": (details) => { + const firstTransform = mergeRows(details, mergeRowsParams1); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl5": (details) => { + const firstTransform = mergeRows(details, mergeRowsParams1); + return filterSections(firstTransform); + }, +}; + +module.exports = summaryDetailsTransformations; diff --git a/runner/src/server/transforms/summaryDetails/mergeRows.ts b/runner/src/server/transforms/summaryDetails/mergeRows.ts new file mode 100644 index 0000000000..91acdf037f --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/mergeRows.ts @@ -0,0 +1,33 @@ +export function mergeRows( + details: any, + fields: Array<{ names: Array; to: string; joiner: string }> +) { + return details.map( + (detail: { name: string; title: string; items: Array }) => { + const allFieldNames = fields.map((field) => field.names).flat(); + const transformedItems = detail.items + .map((item) => { + const field = fields.find((field) => field.names[0] === item.name); + if (field) { + const { names, to, joiner } = field; + const findItem = (name: string) => + detail.items.find((item) => item.name === name); + const values = names + .map((name) => (findItem(name) ? findItem(name).value : null)) + .filter((value) => value); + + return { + ...item, + name: to.toLowerCase().replace(" ", "_"), + ...{ label: to, title: to, rawValue: to }, + value: values.length === 0 ? "Not supplied" : values.join(joiner), + }; + } + return item; + }) + .filter((item) => !allFieldNames.includes(item.name)); + + return { ...detail, items: transformedItems }; + } + ); +} From d8a815c4f3edc470a81b423059489eb6357122d8 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 14 Jul 2025 23:43:25 +0100 Subject: [PATCH 328/403] Update index.ts --- runner/src/server/transforms/summaryDetails/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index ee6dc73ffb..d25fd1eb88 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -13,7 +13,7 @@ export { SummaryDetailsTransformationMap }; const mergeRowsParams1 = [ { names: ["first_name", "last_name"], to: "Full name", joiner: " " }, { - names: ["mobile_number", "landline_number", "email_address"], + names: ["phone_number", "email_address"], to: "Contact details", joiner: "\n", }, From c1cb28fb5eb57f63ede9f925bad7bd609aa43ef8 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Mon, 14 Jul 2025 23:44:55 +0100 Subject: [PATCH 329/403] Add files via upload --- .../forms/close-contact-form-hpt-nl5.json | 200 +++++++++--------- .../forms/close-contact-form-hpt-uat.json | 200 +++++++++--------- .../server/forms/close-contact-form-hpt.json | 200 +++++++++--------- .../server/forms/close-contact-form-nl5.json | 200 +++++++++--------- .../server/forms/close-contact-form-uat.json | 200 +++++++++--------- .../src/server/forms/close-contact-form.json | 200 +++++++++--------- 6 files changed, 600 insertions(+), 600 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index efb28e2cf7..1c2e870291 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -350,14 +350,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -383,7 +383,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -391,7 +391,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -407,7 +407,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -449,14 +449,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -482,7 +482,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -490,7 +490,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -506,7 +506,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -548,14 +548,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -581,7 +581,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -589,7 +589,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -605,7 +605,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -647,14 +647,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -680,7 +680,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -688,7 +688,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -704,7 +704,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -746,14 +746,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -779,7 +779,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -787,7 +787,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -803,7 +803,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -845,14 +845,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -878,7 +878,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -886,7 +886,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -902,7 +902,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -944,14 +944,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -977,7 +977,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -985,7 +985,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1001,7 +1001,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1043,14 +1043,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1076,7 +1076,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1084,7 +1084,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1100,7 +1100,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1142,14 +1142,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1175,7 +1175,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1183,7 +1183,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1199,7 +1199,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1241,14 +1241,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1274,7 +1274,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1282,7 +1282,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1298,7 +1298,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1340,14 +1340,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1373,7 +1373,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1381,7 +1381,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1397,7 +1397,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1439,14 +1439,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1472,7 +1472,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1480,7 +1480,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1496,7 +1496,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1538,14 +1538,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1571,7 +1571,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1579,7 +1579,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1595,7 +1595,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1637,14 +1637,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1670,7 +1670,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1678,7 +1678,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1694,7 +1694,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1736,14 +1736,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1769,7 +1769,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1777,7 +1777,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1793,7 +1793,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1835,14 +1835,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1868,7 +1868,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1876,7 +1876,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1892,7 +1892,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1934,14 +1934,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1967,7 +1967,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1975,7 +1975,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1991,7 +1991,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2033,14 +2033,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2066,7 +2066,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2074,7 +2074,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2090,7 +2090,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2132,14 +2132,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2165,7 +2165,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2173,7 +2173,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2189,7 +2189,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2231,14 +2231,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2264,7 +2264,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2272,7 +2272,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2288,7 +2288,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index 1f1e266829..a75b68f2e4 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -350,14 +350,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -383,7 +383,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -391,7 +391,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -407,7 +407,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -449,14 +449,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -482,7 +482,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -490,7 +490,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -506,7 +506,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -548,14 +548,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -581,7 +581,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -589,7 +589,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -605,7 +605,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -647,14 +647,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -680,7 +680,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -688,7 +688,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -704,7 +704,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -746,14 +746,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -779,7 +779,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -787,7 +787,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -803,7 +803,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -845,14 +845,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -878,7 +878,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -886,7 +886,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -902,7 +902,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -944,14 +944,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -977,7 +977,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -985,7 +985,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1001,7 +1001,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1043,14 +1043,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1076,7 +1076,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1084,7 +1084,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1100,7 +1100,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1142,14 +1142,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1175,7 +1175,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1183,7 +1183,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1199,7 +1199,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1241,14 +1241,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1274,7 +1274,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1282,7 +1282,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1298,7 +1298,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1340,14 +1340,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1373,7 +1373,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1381,7 +1381,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1397,7 +1397,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1439,14 +1439,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1472,7 +1472,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1480,7 +1480,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1496,7 +1496,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1538,14 +1538,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1571,7 +1571,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1579,7 +1579,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1595,7 +1595,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1637,14 +1637,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1670,7 +1670,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1678,7 +1678,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1694,7 +1694,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1736,14 +1736,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1769,7 +1769,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1777,7 +1777,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1793,7 +1793,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1835,14 +1835,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1868,7 +1868,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1876,7 +1876,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1892,7 +1892,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1934,14 +1934,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1967,7 +1967,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1975,7 +1975,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1991,7 +1991,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2033,14 +2033,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2066,7 +2066,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2074,7 +2074,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2090,7 +2090,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2132,14 +2132,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2165,7 +2165,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2173,7 +2173,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2189,7 +2189,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2231,14 +2231,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2264,7 +2264,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2272,7 +2272,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2288,7 +2288,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-hpt.json b/runner/src/server/forms/close-contact-form-hpt.json index 1943272c89..b06f6adcac 100644 --- a/runner/src/server/forms/close-contact-form-hpt.json +++ b/runner/src/server/forms/close-contact-form-hpt.json @@ -350,14 +350,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -383,7 +383,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -391,7 +391,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -407,7 +407,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -449,14 +449,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -482,7 +482,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -490,7 +490,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -506,7 +506,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -548,14 +548,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -581,7 +581,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -589,7 +589,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -605,7 +605,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -647,14 +647,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -680,7 +680,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -688,7 +688,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -704,7 +704,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -746,14 +746,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -779,7 +779,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -787,7 +787,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -803,7 +803,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -845,14 +845,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -878,7 +878,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -886,7 +886,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -902,7 +902,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -944,14 +944,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -977,7 +977,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -985,7 +985,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1001,7 +1001,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1043,14 +1043,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1076,7 +1076,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1084,7 +1084,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1100,7 +1100,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1142,14 +1142,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1175,7 +1175,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1183,7 +1183,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1199,7 +1199,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1241,14 +1241,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1274,7 +1274,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1282,7 +1282,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1298,7 +1298,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1340,14 +1340,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1373,7 +1373,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1381,7 +1381,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1397,7 +1397,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1439,14 +1439,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1472,7 +1472,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1480,7 +1480,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1496,7 +1496,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1538,14 +1538,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1571,7 +1571,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1579,7 +1579,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1595,7 +1595,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1637,14 +1637,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1670,7 +1670,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1678,7 +1678,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1694,7 +1694,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1736,14 +1736,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1769,7 +1769,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1777,7 +1777,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1793,7 +1793,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1835,14 +1835,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1868,7 +1868,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1876,7 +1876,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1892,7 +1892,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1934,14 +1934,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1967,7 +1967,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1975,7 +1975,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1991,7 +1991,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2033,14 +2033,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2066,7 +2066,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2074,7 +2074,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2090,7 +2090,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2132,14 +2132,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2165,7 +2165,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2173,7 +2173,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2189,7 +2189,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2231,14 +2231,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2264,7 +2264,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2272,7 +2272,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2288,7 +2288,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index e0039bdd7d..c47d1ef1c5 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -349,14 +349,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -382,7 +382,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -390,7 +390,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -406,7 +406,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -448,14 +448,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -481,7 +481,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -489,7 +489,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -505,7 +505,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -547,14 +547,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -580,7 +580,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -588,7 +588,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -604,7 +604,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -646,14 +646,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -679,7 +679,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -687,7 +687,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -703,7 +703,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -745,14 +745,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -778,7 +778,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -786,7 +786,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -802,7 +802,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -844,14 +844,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -877,7 +877,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -885,7 +885,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -901,7 +901,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -943,14 +943,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -976,7 +976,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -984,7 +984,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1000,7 +1000,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1042,14 +1042,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1075,7 +1075,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1083,7 +1083,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1099,7 +1099,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1141,14 +1141,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1174,7 +1174,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1182,7 +1182,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1198,7 +1198,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1240,14 +1240,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1273,7 +1273,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1281,7 +1281,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1297,7 +1297,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1339,14 +1339,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1372,7 +1372,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1380,7 +1380,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1396,7 +1396,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1438,14 +1438,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1471,7 +1471,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1479,7 +1479,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1495,7 +1495,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1537,14 +1537,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1570,7 +1570,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1578,7 +1578,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1594,7 +1594,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1636,14 +1636,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1669,7 +1669,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1677,7 +1677,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1693,7 +1693,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1735,14 +1735,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1768,7 +1768,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1776,7 +1776,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1792,7 +1792,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1834,14 +1834,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1867,7 +1867,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1875,7 +1875,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1891,7 +1891,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1933,14 +1933,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1966,7 +1966,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1974,7 +1974,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1990,7 +1990,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2032,14 +2032,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2065,7 +2065,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2073,7 +2073,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2089,7 +2089,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2131,14 +2131,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2164,7 +2164,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2172,7 +2172,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2188,7 +2188,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2230,14 +2230,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2263,7 +2263,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2271,7 +2271,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2287,7 +2287,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index cf543a41b5..21d3c26a68 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -349,14 +349,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -382,7 +382,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -390,7 +390,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -406,7 +406,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -448,14 +448,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -481,7 +481,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -489,7 +489,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -505,7 +505,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -547,14 +547,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -580,7 +580,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -588,7 +588,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -604,7 +604,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -646,14 +646,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -679,7 +679,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -687,7 +687,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -703,7 +703,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -745,14 +745,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -778,7 +778,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -786,7 +786,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -802,7 +802,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -844,14 +844,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -877,7 +877,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -885,7 +885,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -901,7 +901,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -943,14 +943,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -976,7 +976,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -984,7 +984,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1000,7 +1000,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1042,14 +1042,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1075,7 +1075,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1083,7 +1083,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1099,7 +1099,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1141,14 +1141,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1174,7 +1174,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1182,7 +1182,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1198,7 +1198,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1240,14 +1240,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1273,7 +1273,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1281,7 +1281,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1297,7 +1297,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1339,14 +1339,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1372,7 +1372,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1380,7 +1380,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1396,7 +1396,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1438,14 +1438,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1471,7 +1471,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1479,7 +1479,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1495,7 +1495,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1537,14 +1537,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1570,7 +1570,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1578,7 +1578,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1594,7 +1594,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1636,14 +1636,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1669,7 +1669,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1677,7 +1677,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1693,7 +1693,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1735,14 +1735,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1768,7 +1768,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1776,7 +1776,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1792,7 +1792,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1834,14 +1834,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1867,7 +1867,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1875,7 +1875,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1891,7 +1891,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1933,14 +1933,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1966,7 +1966,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1974,7 +1974,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1990,7 +1990,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2032,14 +2032,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2065,7 +2065,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2073,7 +2073,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2089,7 +2089,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2131,14 +2131,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2164,7 +2164,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2172,7 +2172,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2188,7 +2188,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2230,14 +2230,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2263,7 +2263,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2271,7 +2271,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2287,7 +2287,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json index 3ed9f67ac4..48c1ddeeb2 100644 --- a/runner/src/server/forms/close-contact-form.json +++ b/runner/src/server/forms/close-contact-form.json @@ -349,14 +349,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -382,7 +382,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -390,7 +390,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -406,7 +406,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -448,14 +448,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -481,7 +481,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -489,7 +489,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -505,7 +505,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -547,14 +547,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -580,7 +580,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -588,7 +588,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -604,7 +604,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -646,14 +646,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -679,7 +679,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -687,7 +687,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -703,7 +703,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -745,14 +745,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -778,7 +778,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -786,7 +786,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -802,7 +802,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -844,14 +844,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -877,7 +877,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -885,7 +885,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -901,7 +901,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -943,14 +943,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -976,7 +976,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -984,7 +984,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1000,7 +1000,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1042,14 +1042,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1075,7 +1075,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1083,7 +1083,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1099,7 +1099,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1141,14 +1141,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1174,7 +1174,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1182,7 +1182,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1198,7 +1198,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1240,14 +1240,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1273,7 +1273,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1281,7 +1281,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1297,7 +1297,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1339,14 +1339,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1372,7 +1372,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1380,7 +1380,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1396,7 +1396,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1438,14 +1438,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1471,7 +1471,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1479,7 +1479,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1495,7 +1495,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1537,14 +1537,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1570,7 +1570,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1578,7 +1578,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1594,7 +1594,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1636,14 +1636,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1669,7 +1669,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1677,7 +1677,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1693,7 +1693,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1735,14 +1735,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1768,7 +1768,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1776,7 +1776,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1792,7 +1792,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1834,14 +1834,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1867,7 +1867,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1875,7 +1875,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1891,7 +1891,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1933,14 +1933,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1966,7 +1966,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1974,7 +1974,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1990,7 +1990,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2032,14 +2032,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2065,7 +2065,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2073,7 +2073,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2089,7 +2089,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2131,14 +2131,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2164,7 +2164,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2172,7 +2172,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2188,7 +2188,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2230,14 +2230,14 @@ "content": "

    Personal details

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2263,7 +2263,7 @@ "schema": {} }, { - "name": "contact_phone_number", + "name": "phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2271,7 +2271,7 @@ "schema": {} }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2287,7 +2287,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], From 6a4e8f7961c388a9ed576c0e529e0f890190fb88 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Tue, 15 Jul 2025 14:26:03 +0100 Subject: [PATCH 330/403] LOPS3-407 Reinstate upstream TelephoneNumberField regex (#428) --- runner/src/server/forms/ReportAnOutbreak.json | 6 ++++++ .../engine/components/TelephoneNumberField.ts | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index a503b831be..174b3a746b 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -2918,6 +2918,9 @@ "title": "Phone number", "values": { "type": "listRef" + }, + "schema": { + "regex": "(?!0{5,})(((\\+44\\s?(?!4|6)\\d{4}|\\(?0(?!4|6)\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?(?!4|6)\\d{3}|\\(?0(?!4|6)\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?(?!4|6)\\d{2}|\\(?0(?!4|6)\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?\\#(\\d{4}|\\d{3}))?" } }, { @@ -2999,6 +3002,9 @@ "title": "Phone number", "values": { "type": "listRef" + }, + "schema": { + "regex": "(?!0{5,})(((\\+44\\s?(?!4|6)\\d{4}|\\(?0(?!4|6)\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?(?!4|6)\\d{3}|\\(?0(?!4|6)\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?(?!4|6)\\d{2}|\\(?0(?!4|6)\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?\\#(\\d{4}|\\d{3}))?" } }, { diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index 4825b98fe0..06e788b9e1 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -6,20 +6,22 @@ import { addClassOptionIfNone, internationalPhoneValidator } from "./helpers"; import { FormData, FormSubmissionErrors } from "../types"; import joi, { Schema } from "joi"; -const TELEPHONE_REGEX = "(?!0{5,})(((\\\+44\\s?(?!4|6)\\d{4}|\\(?0(?!4|6)\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\\+44\\s?(?!4|6)\\d{3}|\\(?0(?!4|6)\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\\+44\\s?(?!4|6)\\d{2}|\\(?0(?!4|6)\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?\\#(\\d{4}|\\d{3}))?"; +const PATTERN = /^[0-9\\\s+()-]*$/; +const DEFAULT_MESSAGE = "Enter a telephone number in the correct format"; export class TelephoneNumberField extends FormComponent { constructor(def: TelephoneNumberFieldComponent, model: FormModel) { super(def, model); const { options = {}, schema = {} } = def; + const pattern = schema.regex ? new RegExp(schema.regex) : PATTERN; let componentSchema = joi.string(); if (options.required === false) { componentSchema = componentSchema.allow("").allow(null); } - - const pattern = new RegExp(TELEPHONE_REGEX); - componentSchema = componentSchema.pattern(pattern); + componentSchema = componentSchema + .pattern(pattern) + .label(def.title.toLowerCase()); if (schema.max) { componentSchema = componentSchema.max(schema.max); @@ -37,6 +39,11 @@ export class TelephoneNumberField extends FormComponent { componentSchema = componentSchema.messages( options.customValidationMessages ); + } else { + componentSchema = componentSchema.messages({ + "string.pattern.base": + def.options?.customValidationMessage ?? DEFAULT_MESSAGE, + }); } this.schema = componentSchema; From a942fcbed8f8957477ee2f895d9c49a269332436 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 16 Jul 2025 13:54:25 +0100 Subject: [PATCH 331/403] Change params const name to closeContactParams --- .../src/server/transforms/summaryDetails/index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index d25fd1eb88..1db41e6212 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -10,7 +10,7 @@ export { SummaryDetailsTransformationMap }; * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) */ -const mergeRowsParams1 = [ +const closeContactParams = [ { names: ["first_name", "last_name"], to: "Full name", joiner: " " }, { names: ["phone_number", "email_address"], @@ -21,27 +21,27 @@ const mergeRowsParams1 = [ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { "close-contact-form": (details) => { - const firstTransform = mergeRows(details, mergeRowsParams1); + const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, "close-contact-form-uat": (details) => { - const firstTransform = mergeRows(details, mergeRowsParams1); + const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, "close-contact-form-nl5": (details) => { - const firstTransform = mergeRows(details, mergeRowsParams1); + const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, "close-contact-form-hpt": (details) => { - const firstTransform = mergeRows(details, mergeRowsParams1); + const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, "close-contact-form-hpt-uat": (details) => { - const firstTransform = mergeRows(details, mergeRowsParams1); + const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, "close-contact-form-hpt-nl5": (details) => { - const firstTransform = mergeRows(details, mergeRowsParams1); + const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, }; From ea7db9cda4f3f36d5119fa3cf9d262e588781eee Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 16 Jul 2025 14:04:33 +0100 Subject: [PATCH 332/403] Add comment to filterSections.ts --- runner/src/server/transforms/summaryDetails/filterSections.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runner/src/server/transforms/summaryDetails/filterSections.ts b/runner/src/server/transforms/summaryDetails/filterSections.ts index 383912d68b..960ae129f5 100644 --- a/runner/src/server/transforms/summaryDetails/filterSections.ts +++ b/runner/src/server/transforms/summaryDetails/filterSections.ts @@ -1,3 +1,6 @@ +// Removes rows that don't belong to sections +// Transforms sections with names where a number follows a letter into a card + export function filterSections(details) { return details .filter((detail) => detail.name) From 75108c910b513409fa3406150b904764342663b3 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 16 Jul 2025 14:09:21 +0100 Subject: [PATCH 333/403] Add comment to mergeRows.ts --- runner/src/server/transforms/summaryDetails/mergeRows.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runner/src/server/transforms/summaryDetails/mergeRows.ts b/runner/src/server/transforms/summaryDetails/mergeRows.ts index 91acdf037f..b2f302af1b 100644 --- a/runner/src/server/transforms/summaryDetails/mergeRows.ts +++ b/runner/src/server/transforms/summaryDetails/mergeRows.ts @@ -1,3 +1,5 @@ +// Find fields in each section, create a row with a value that combines the values of those fields, then remove the original fields + export function mergeRows( details: any, fields: Array<{ names: Array; to: string; joiner: string }> From 2fcfef27a550b2a9e6d382385aacb77106b3fbbe Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 16 Jul 2025 14:51:07 +0100 Subject: [PATCH 334/403] Create mergeRows.test.js --- .../cases/server/transforms/mergeRows.test.js | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 runner/test/cases/server/transforms/mergeRows.test.js diff --git a/runner/test/cases/server/transforms/mergeRows.test.js b/runner/test/cases/server/transforms/mergeRows.test.js new file mode 100644 index 0000000000..e8688449ea --- /dev/null +++ b/runner/test/cases/server/transforms/mergeRows.test.js @@ -0,0 +1,70 @@ +import Lab from "@hapi/lab"; +import { expect } from "@hapi/code"; +const { before, test, suite, after } = (exports.lab = Lab.script()); + +import { mergeRows } from "../../../../src/server/transforms/summaryDetails/mergeRows"; + +suite("mergeRows", () => { + const details = [ + { + name: "Detail1", + title: "Detail 1", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage", + }, + { + name: "last_name", + title: "Last name", + label: "Last name", + value: "Bloggs", + rawValue: "Bloggs", + url: "/namePage", + }, + { + name: "dob", + title: "Date of birth", + label: "Date of birth", + value: "21/04/1994", + rawValue: "21/04/1994", + url: "/namePage", + }, + ], + }, + ]; + const fields = [ + { names: ["first_name", "last_name"], to: "Full name", joiner: " " }, + ]; + + test("mergeRows correctly transforms ", () => { + expect(mergeRows(details, fields)).to.equal([ + { + name: "Detail1", + title: "Detail 1", + items: [ + { + name: "full_name", + title: "Full name", + label: "Full name", + value: "Joe Bloggs", + rawValue: "Full name", + url: "/namePage", + }, + { + name: "dob", + title: "Date of birth", + label: "Date of birth", + value: "21/04/1994", + rawValue: "21/04/1994", + url: "/namePage", + }, + ], + }, + ]); + }); +}); From 83da690c900ca9f33eb87bfee7ebb144a81cf7e8 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 16 Jul 2025 14:51:22 +0100 Subject: [PATCH 335/403] Create filterSections.test.js --- .../server/transforms/filterSections.test.js | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 runner/test/cases/server/transforms/filterSections.test.js diff --git a/runner/test/cases/server/transforms/filterSections.test.js b/runner/test/cases/server/transforms/filterSections.test.js new file mode 100644 index 0000000000..f2f3676ed8 --- /dev/null +++ b/runner/test/cases/server/transforms/filterSections.test.js @@ -0,0 +1,121 @@ +import Lab from "@hapi/lab"; +import { expect } from "@hapi/code"; +const { before, test, suite, after } = (exports.lab = Lab.script()); + +import { filterSections } from "../../../../src/server/transforms/summaryDetails/filterSections"; + +suite("filterSections", () => { + const details = [ + { + items: [ + { + name: "id", + title: "ID", + label: "ID", + value: "123", + rawValue: "123", + url: "/startPage", + }, + ], + }, + { + name: "YourDetails", + title: "Your details", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person1", + title: "Person 1", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person2", + title: "Person 2", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + inError: true, + }, + ], + }, + ]; + + test("filterSections correctly transforms", () => { + expect(filterSections(details)).to.equal([ + { + name: "YourDetails", + title: "Your details", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person1", + title: "Person 1", + card: "/namePage?returnTo=summary", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person2", + title: "Person 2", + card: "/namePage", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + inError: true, + }, + ], + }, + ]); + }); +}); From 447d2f8b9ffede14cbe32f3be2954f6c73394745 Mon Sep 17 00:00:00 2001 From: kitttang Date: Fri, 11 Jul 2025 17:53:35 +0100 Subject: [PATCH 336/403] form changes and file upload size increase --- runner/config/default.js | 4 +- runner/src/server/forms/kls-enquiries.json | 41 +++++++---- runner/src/server/forms/kls-magic-link.json | 7 +- .../server/forms/kls-training-magic-link.json | 5 +- .../server/forms/kls-training-request.json | 72 ++++++++++++------- 5 files changed, 84 insertions(+), 45 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index cb8e271ca2..f92e25871f 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -148,6 +148,6 @@ module.exports = { /** * File size errors */ - maxClientFileSize: 5 * 1024 * 1024, // 5MB - maxFileSizeStringInMb: "5", // The file size to render if the file is too large in MB + maxClientFileSize: 10 * 1024 * 1024, // 5MB + maxFileSizeStringInMb: "10", // The file size to render if the file is too large in MB }; diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index d808dfbefd..5d357b074e 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -1,13 +1,12 @@ { "metadata": {}, "startPage": "/start", - "fullStartPage": "/kls-enquiries/start", + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", "authentication": true, "toggle": true, "serviceName": "UKHSA Knowledge and Library Services (KLS)", "analytics": { - "matomoUrl": "https://ukhsakls.matomo.cloud", - "matomoId": "11" + "gtmId1": "GTM-WLKKLMQB" }, "webhookHmacSharedKey": "${KLSkey}", "fileUploadHmacSharedKey": "${KLSFileUploadKey}", @@ -18,7 +17,14 @@ "title": "Contact the Knowledge and Library Services team", "path": "/start", "unauthenticated": true, - "components": [], + "components": [ + { + "name": "mainContent", + "options": {}, + "type": "Para", + "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry.

    " + } + ], "next": [ { "path": "/which-organisation-do-you-work-for" @@ -128,7 +134,10 @@ { "name": "ZjyQtC", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } }, "type": "EmailAddressField", "title": "Should anyone else be included in emails about this enquiry?", @@ -215,7 +224,8 @@ "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" }, "type":"FileUploadField", - "title":"If you need to upload a file to help us deal with your enquiry, do so here." + "title":"If you need to upload a file to help us deal with your enquiry, do so here.", + "hint": "To support the KLS team in dealing with your query, you may upload a file here. You can upload multiple files but the maximum size of all files combined cannot exceed 10 MB" } @@ -712,8 +722,8 @@ { "name": "FIvjTg", "type": "FileUploadField", - "title": "Upload a file v2", - "hint": "To support the KLS team in dealing with your query, you may upload a file here.", + "title": "If you need to upload a file to help us deal with your enquiry, do so here.", + "hint": "To support the KLS team in dealing with your query, you may upload a file here. You can upload multiple files but the maximum size of all files combined cannot exceed 10 MB", "schema": {}, "options": { "multiple": true, @@ -1052,7 +1062,10 @@ { "name": "rqzRcc", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } }, "type": "EmailAddressField", "title": "Should anyone else be included in emails about this enquiry?" @@ -1086,7 +1099,8 @@ "customValidationMessages": { "any.required": "Enter email address", "any.only": "Enter email address", - "string.empty": "Enter email address" + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, "type": "EmailAddressField", @@ -1095,7 +1109,10 @@ { "name": "YeDsms", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } }, "type": "EmailAddressField", "title": "Should anyone else be included in emails about this enquiry?" @@ -2378,4 +2395,4 @@ "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" }, "jwtKey": "${KLSJwtKey}" -} +} \ No newline at end of file diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index 64c1ef3aaf..dccd7e18a6 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -5,16 +5,15 @@ "toggle": true, "toggleRedirect": "/kls-enquiries/which-organisation-do-you-work-for-DUPE", "retryTimeoutSeconds": 300, - "analytics": { - "matomoId": "11", - "matomoUrl": "https://ukhsakls.matomo.cloud" + "analytics": { + "gtmId1": "GTM-WLKKLMQB" }, "magicLinkConfig": "kls-magic-link", "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk", "nccpentest.com", "nccgroup.com"], "invalidDomainRedirect": "/kls-magic-link/your-email-is-not-on-our-approved-list", "serviceName": "UKHSA Knowledge and Library Services (KLS)", "name": "UKHSA Knowledge and Library Services (KLS)", - "fullStartPage": "/kls-enquiries/start", + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", "pages": [ { "path": "/start", diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index 4d97c7f64c..007ff0cbda 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -4,6 +4,9 @@ "skipSummary": true, "authentication": true, "toggle": true, + "analytics": { + "gtmId1": "GTM-WLKKLMQB" + }, "serviceName": "UKHSA Knowledge and Library Services (KLS)", "name": "UKHSA Knowledge and Library Services (KLS)", "toggleRedirect": "/kls-training-request/training-request-part-1", @@ -16,7 +19,7 @@ "gov.uk" ], "invalidDomainRedirect": "/kls-training-magic-link/your-email-is-not-on-our-approved-list", - "fullStartPage": "/kls-training-request/start", + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", "pages": [ { "path": "/start", diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index f0d3f51e35..ce2352bd3e 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -1,9 +1,12 @@ { "metadata": {}, "startPage": "/start", - "fullStartPage": "/kls-training-request/start", + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", "authentication": true, "toggle": true, + "analytics": { + "gtmId1": "GTM-WLKKLMQB" + }, "serviceName": "UKHSA Knowledge and Library Services (KLS)", "name": "UKHSA Knowledge and Library Services (KLS)", "magicLinkConfig": "kls-training-magic-link", @@ -12,7 +15,14 @@ { "title": "Contact the Knowledge and Library Services team", "path": "/start", - "components": [], + "components": [ + { + "name": "mainContent", + "options": {}, + "type": "Para", + "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry.

    " + } + ], "next": [ { "path": "/which-organisation-do-you-work-for" @@ -30,9 +40,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select an organisation", - "any.only": "Select an organisation", - "string.empty": "Select an organisation" + "any.required": "Select which organisation do you belong to", + "any.only": "Select which organisation do you belong to", + "string.empty": "Select which organisation do you belong to" } }, "type": "RadiosField", @@ -98,9 +108,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select training session type", - "any.only": "Select training session type", - "string.empty": "Select training session type" + "any.required": "Select what training session would you like us to provide", + "any.only": "Select what training session would you like us to provide", + "string.empty": "Select what training session would you like us to provide" } }, "type": "RadiosField", @@ -116,8 +126,9 @@ "options": { "required": true, "customValidationMessages": { - "number.base": "Enter number of participants", - "number.min": "Number of participants must be greater than 0" + "number.base": "What is the approximate number of participants? (must be a number)", + "number.min": "Number of participants must be greater than 0", + "number.empty": "What is the approximate number of participants? (must be a number)" } }, "hint": "Enter number of participants", @@ -132,9 +143,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select preferred delivery type", - "any.only": "Select preferred delivery type", - "string.empty": "Select preferred delivery type" + "any.required": "Select what is your preferred delivery type", + "any.only": "Select what is your preferred delivery type", + "string.empty": "Select what is your preferred delivery type" } }, "type": "RadiosField", @@ -196,9 +207,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select topic(s)", - "any.only": "Select topics(s)", - "string.empty": "Select topics(s)" + "any.required": "Select what topic(s) would you like to cover", + "any.only": "Select what topic(s) would you like to cover", + "string.empty": "Select what topic(s) would you like to cover" } }, "type": "CheckboxesField", @@ -220,22 +231,22 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter team specialty", - "any.only": "Enter team specialty", - "string.empty": "Enter team specialty" + "any.required": "Describe your team’s area of specialism and any specific topic you would like the training to focus on", + "any.only": "Describe your team’s area of specialism and any specific topic you would like the training to focus on", + "string.empty": "Describe your team’s area of specialism and any specific topic you would like the training to focus on" } }, "type": "MultilineTextField", - "title": "Please let us know your team’s area of specialism and any specific topic you would like the training to focus on. Alternatively, indicate if you would prefer a more generic training session. " + "title": "Please let us know your team’s area of specialism and any specific topic you would like the training to focus on. Alternatively, indicate if you would prefer a more generic training session." }, { "name": "ojkYsn", "options": { "required": true, "customValidationMessages": { - "any.required": "Enter suggested date", - "any.only": "Enter suggested date", - "string.empty": "Enter suggested date" + "any.required": "Enter suggested date(s) for the session", + "any.only": "Enter suggested date(s) for the session", + "string.empty": "Enter suggested date(s) for the session" } }, "type": "TextField", @@ -354,7 +365,10 @@ { "name": "lZOKDY", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } }, "type": "EmailAddressField", "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" @@ -413,7 +427,10 @@ { "name": "AOadZe", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } }, "type": "EmailAddressField", "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" @@ -485,7 +502,10 @@ { "name": "cEhUTE", "options": { - "required": false + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } }, "type": "EmailAddressField", "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" From d05b7c3ecd7124afdb47e004e8141aed64b63e54 Mon Sep 17 00:00:00 2001 From: emilyjevans <30391244+emilyjevans@users.noreply.github.com> Date: Thu, 17 Jul 2025 10:15:53 +0100 Subject: [PATCH 337/403] Add runtime test to PR pipeline (#427) --- .github/workflows/pull-request.yml | 45 ++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index d8f0edffb3..7ae533fe3e 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -32,18 +32,45 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Validate build configuration - uses: docker/build-push-action@v6 - with: - call: check - context: ./builder - file: ./builder/runner/Dockerfile + - name: Modify config for build + run: | + cd ./builder/runner + # Comment out specific Redis + sessionCookiePassword configuration lines + sed -i 's/^ sessionCookiePassword:/ \/\/ sessionCookiePassword:/' config/default.js + sed -i 's/^ redisHost:/ \/\/ redisHost:/' config/default.js + sed -i 's/^ redisPort:/ \/\/ redisPort:/' config/default.js + sed -i 's/^ redisPassword:/ \/\/ redisPassword:/' config/default.js + sed -i 's/^ redisTls:/ \/\/ redisTls:/' config/default.js - - name: Build and push - uses: docker/build-push-action@v4 + - name: Build and cache + uses: docker/build-push-action@v6 with: push: false - tags: user/app:latest + load: true + tags: user/app:test context: ./builder file: ./builder/runner/Dockerfile platforms: linux/amd64 + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Check + run: | + echo "Starting container..." + + # Start container and immediately check if it's running + docker run --rm -d --name quick-test -p 8080:8080 user/app:test + + # Wait a moment + sleep 5 + + # Check if still running + if docker ps | grep -q quick-test; then + echo "✅ Container started successfully" + docker logs quick-test + docker stop quick-test + else + echo "❌ Container failed to start or exited" + docker logs quick-test 2>&1 || echo "No logs available" + exit 1 + fi From d67afd43bfba028fe8edc7dfc5d4c3d0648c70d7 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:05:36 +0100 Subject: [PATCH 338/403] Delete runner/src/server/forms/TestForm1.json --- runner/src/server/forms/TestForm1.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm1.json diff --git a/runner/src/server/forms/TestForm1.json b/runner/src/server/forms/TestForm1.json deleted file mode 100644 index f0b228bb71..0000000000 --- a/runner/src/server/forms/TestForm1.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://iv5ypy2te5.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From be103d358dc0eb3ed48654c62e8e4b7f1e2939c5 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:05:45 +0100 Subject: [PATCH 339/403] Delete runner/src/server/forms/TestForm2.json --- runner/src/server/forms/TestForm2.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm2.json diff --git a/runner/src/server/forms/TestForm2.json b/runner/src/server/forms/TestForm2.json deleted file mode 100644 index c2714993f2..0000000000 --- a/runner/src/server/forms/TestForm2.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://pksfrddt6i.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From e459d9c2d9b4768860b0c8c29814dad6013ab631 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:06:02 +0100 Subject: [PATCH 340/403] Delete runner/src/server/forms/TestForm3.json --- runner/src/server/forms/TestForm3.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm3.json diff --git a/runner/src/server/forms/TestForm3.json b/runner/src/server/forms/TestForm3.json deleted file mode 100644 index 3d6b04f982..0000000000 --- a/runner/src/server/forms/TestForm3.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test/kjhg", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From c8e4a8676982c015bc89a3fba30ccb125714fac9 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:06:10 +0100 Subject: [PATCH 341/403] Delete runner/src/server/forms/TestForm4.json --- runner/src/server/forms/TestForm4.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm4.json diff --git a/runner/src/server/forms/TestForm4.json b/runner/src/server/forms/TestForm4.json deleted file mode 100644 index c382b49276..0000000000 --- a/runner/src/server/forms/TestForm4.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://50urt3mp8g.execute-api.eu-west-2.amazonaws.com/test/", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From 7929697b34094209c6124db8e4f9ae6e689bcd49 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:06:18 +0100 Subject: [PATCH 342/403] Delete runner/src/server/forms/TestForm5.json --- runner/src/server/forms/TestForm5.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm5.json diff --git a/runner/src/server/forms/TestForm5.json b/runner/src/server/forms/TestForm5.json deleted file mode 100644 index 83291a345d..0000000000 --- a/runner/src/server/forms/TestForm5.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://nz8lxcj3yc.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From 8d281394029a5e2d83630a64d9b5b0b9b3de7c98 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:06:26 +0100 Subject: [PATCH 343/403] Delete runner/src/server/forms/TestForm6.json --- runner/src/server/forms/TestForm6.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm6.json diff --git a/runner/src/server/forms/TestForm6.json b/runner/src/server/forms/TestForm6.json deleted file mode 100644 index e968975051..0000000000 --- a/runner/src/server/forms/TestForm6.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://carlzjjrvl.execute-api.eu-west-2.amazonaws.com/test", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From 4463d0f7186fc992d5da4c5c1149823b2008b165 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:06:37 +0100 Subject: [PATCH 344/403] Delete runner/src/server/forms/TestForm7.json --- runner/src/server/forms/TestForm7.json | 41 -------------------------- 1 file changed, 41 deletions(-) delete mode 100644 runner/src/server/forms/TestForm7.json diff --git a/runner/src/server/forms/TestForm7.json b/runner/src/server/forms/TestForm7.json deleted file mode 100644 index 6fe3b99494..0000000000 --- a/runner/src/server/forms/TestForm7.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "metadata": {}, - "startPage": "/hello", - "pages": [ - { - "path": "/hello", - "title": "Hello", - "components": [], - "next": [ - { - "path": "/summary" - } - ] - }, - { - "title": "Summary", - "path": "/summary", - "controller": "./pages/summary.js", - "components": [] - } - ], - "lists": [], - "sections": [], - "conditions": [], - "fees": [], - "outputs": [ - { - "name": "BsGFLT", - "title": "Execute API", - "type": "webhook", - "outputConfiguration": { - "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", - "allowRetry": true - } - } - ], - "version": 2, - "skipSummary": false, - "feeOptions": {}, - "feedback": {} -} From 9b7c44810281eca150a0e9516674742b9b694651 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:07:58 +0100 Subject: [PATCH 345/403] Rename close-contact-form.json to close-contact-form-nl1.json --- .../{close-contact-form.json => close-contact-form-nl1.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename runner/src/server/forms/{close-contact-form.json => close-contact-form-nl1.json} (100%) diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form-nl1.json similarity index 100% rename from runner/src/server/forms/close-contact-form.json rename to runner/src/server/forms/close-contact-form-nl1.json From 0386f71858824ee4d8329b5969ac33ea1d585de6 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:08:23 +0100 Subject: [PATCH 346/403] Rename close-contact-form-hpt.json to close-contact-form-hpt-nl1.json --- ...lose-contact-form-hpt.json => close-contact-form-hpt-nl1.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename runner/src/server/forms/{close-contact-form-hpt.json => close-contact-form-hpt-nl1.json} (100%) diff --git a/runner/src/server/forms/close-contact-form-hpt.json b/runner/src/server/forms/close-contact-form-hpt-nl1.json similarity index 100% rename from runner/src/server/forms/close-contact-form-hpt.json rename to runner/src/server/forms/close-contact-form-hpt-nl1.json From 8710ecadf57a0cd2b27060979deed5de961ca405 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:09:43 +0100 Subject: [PATCH 347/403] Rename close-contact-form-nl1.json to close-contact-form-nl1-test.json --- ...ose-contact-form-nl1.json => close-contact-form-nl1-test.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename runner/src/server/forms/{close-contact-form-nl1.json => close-contact-form-nl1-test.json} (100%) diff --git a/runner/src/server/forms/close-contact-form-nl1.json b/runner/src/server/forms/close-contact-form-nl1-test.json similarity index 100% rename from runner/src/server/forms/close-contact-form-nl1.json rename to runner/src/server/forms/close-contact-form-nl1-test.json From 66e357c27c64dbb2cd19c0281cf0ef58cc7bf926 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:10:03 +0100 Subject: [PATCH 348/403] Rename close-contact-form-hpt-nl1.json to close-contact-form-hpt-nl1-test.json --- ...act-form-hpt-nl1.json => close-contact-form-hpt-nl1-test.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename runner/src/server/forms/{close-contact-form-hpt-nl1.json => close-contact-form-hpt-nl1-test.json} (100%) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json similarity index 100% rename from runner/src/server/forms/close-contact-form-hpt-nl1.json rename to runner/src/server/forms/close-contact-form-hpt-nl1-test.json From e3253fc4c501cfb5a87f4a3e927247e96db687a4 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 13:16:46 +0100 Subject: [PATCH 349/403] New form variations --- .../forms/close-contact-form-hpt-nl1-dev.json | 3323 +++++++++++++++++ .../forms/close-contact-form-hpt-nl4.json | 3323 +++++++++++++++++ .../forms/close-contact-form-hpt-nl7.json | 3323 +++++++++++++++++ .../forms/close-contact-form-hpt-nl8.json | 3323 +++++++++++++++++ .../forms/close-contact-form-nl1-dev.json | 3322 ++++++++++++++++ .../server/forms/close-contact-form-nl4.json | 3322 ++++++++++++++++ .../server/forms/close-contact-form-nl7.json | 3322 ++++++++++++++++ .../server/forms/close-contact-form-nl8.json | 3322 ++++++++++++++++ 8 files changed, 26580 insertions(+) create mode 100644 runner/src/server/forms/close-contact-form-hpt-nl1-dev.json create mode 100644 runner/src/server/forms/close-contact-form-hpt-nl4.json create mode 100644 runner/src/server/forms/close-contact-form-hpt-nl7.json create mode 100644 runner/src/server/forms/close-contact-form-hpt-nl8.json create mode 100644 runner/src/server/forms/close-contact-form-nl1-dev.json create mode 100644 runner/src/server/forms/close-contact-form-nl4.json create mode 100644 runner/src/server/forms/close-contact-form-nl7.json create mode 100644 runner/src/server/forms/close-contact-form-nl8.json diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json new file mode 100644 index 0000000000..1233fbe873 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json new file mode 100644 index 0000000000..842f78d8e2 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl4.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json new file mode 100644 index 0000000000..2efb668639 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl7.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json new file mode 100644 index 0000000000..199ddb237a --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -0,0 +1,3323 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "path": "/case-id", + "title": "Enter the case ID of the person who needs contact tracing", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "section": "CaseID" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl8.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json new file mode 100644 index 0000000000..f1687b07fe --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -0,0 +1,3322 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json new file mode 100644 index 0000000000..37d39a4b69 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -0,0 +1,3322 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl4.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json new file mode 100644 index 0000000000..12f6da2cd3 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -0,0 +1,3322 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl7.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json new file mode 100644 index 0000000000..48c59face6 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -0,0 +1,3322 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Identify close contacts of bird flu", + "path": "/start", + "components": [ + { + "name": "ooHdDj", + "options": {}, + "type": "Para", + "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "Use this service to report:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "It should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "VCwJTN", + "options": {}, + "type": "Para", + "content": "We will need some details of the people that you will list in this form. These details include:", + "schema": {} + }, + { + "name": "ksyXub", + "options": {}, + "type": "List", + "title": "Details required", + "list": "rcWCzy", + "schema": {} + }, + { + "name": "Qkjtcn", + "options": {}, + "type": "Para", + "content": "You will need the details of the close contacts ready.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111 for help.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/personal-details" }], + "controller": "./pages/start.js" + }, + { + "path": "/personal-details", + "title": "Personal details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "YourDetails" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "completing_form_for", + "options": { "hideTitle": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "AVoXlG", + "schema": {} + } + ], + "next": [ + { "path": "/other-persons-details", "condition": "lGzwuI" }, + { "path": "/close-contact-you", "condition": "SypzMi" } + ], + "section": "WhoThisFormIsFor" + }, + { + "path": "/other-persons-details", + "title": "Other person's details", + "components": [ + { + "name": "lcOnmo", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "pcOnmo", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "TLaaZQ", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + }, + { + "name": "phone_number", + "options": {}, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "email_address", + "options": { "required": false }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com", + "schema": {} + } + ], + "next": [{ "path": "/who-should-we-contact" }], + "section": "TheirDetails" + }, + { + "path": "/who-should-we-contact", + "title": "Who should we contact if we need to follow up?", + "components": [ + { + "name": "who_should_we_contact", + "options": {}, + "type": "RadiosField", + "title": "Who we should follow up with", + "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", + "list": "lNoBeE", + "schema": {} + }, + { + "name": "JJOVvQ", + "options": {}, + "type": "InsetText", + "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", + "schema": {} + } + ], + "next": [{ "path": "/close-contact" }], + "section": "WhoThisFormIsFor" + }, + { + "path": "/close-contact", + "title": "Have they been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (other) list", + "list": "oDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if they've been in close contact" + }, + "type": "RadiosField", + "title": "Have they been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-you", + "title": "Have you been in close contact with anyone in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact (you) list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessage": "Select 'yes' if you've been in close contact" + }, + "type": "RadiosField", + "title": "Have you been in close contact with anyone in the last 7 days?", + "list": "YQUrgI", + "values": { "type": "listRef" }, + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfContactsYes" }, + { "path": "/summary", "condition": "IfContactsNo" } + ], + "section": "BeenInContact" + }, + { + "path": "/close-contact-1", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, + { "path": "/summary", "condition": "AddAnotherNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, + { "path": "/summary", "condition": "AddAnotherNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, + { "path": "/summary", "condition": "AddAnotherNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, + { "path": "/summary", "condition": "AddAnotherNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, + { "path": "/summary", "condition": "AddAnotherNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, + { "path": "/summary", "condition": "AddAnotherNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, + { "path": "/summary", "condition": "AddAnotherNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, + { "path": "/summary", "condition": "AddAnotherNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, + { "path": "/summary", "condition": "AddAnotherNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-10" }], + "section": "CloseContact10" + }, + { + "path": "/close-contact-added-10", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson10", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, + { "path": "/summary", "condition": "AddAnotherNo10" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-11", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-11" }], + "section": "CloseContact11" + }, + { + "path": "/close-contact-added-11", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson11", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, + { "path": "/summary", "condition": "AddAnotherNo11" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-12", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-12" }], + "section": "CloseContact12" + }, + { + "path": "/close-contact-added-12", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson12", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, + { "path": "/summary", "condition": "AddAnotherNo12" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-13", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-13" }], + "section": "CloseContact13" + }, + { + "path": "/close-contact-added-13", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson13", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, + { "path": "/summary", "condition": "AddAnotherNo13" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-14", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-14" }], + "section": "CloseContact14" + }, + { + "path": "/close-contact-added-14", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson14", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, + { "path": "/summary", "condition": "AddAnotherNo14" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-15", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-15" }], + "section": "CloseContact15" + }, + { + "path": "/close-contact-added-15", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson15", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, + { "path": "/summary", "condition": "AddAnotherNo15" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-16", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-16" }], + "section": "CloseContact16" + }, + { + "path": "/close-contact-added-16", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson16", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, + { "path": "/summary", "condition": "AddAnotherNo16" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-17", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-17" }], + "section": "CloseContact17" + }, + { + "path": "/close-contact-added-17", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson17", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, + { "path": "/summary", "condition": "AddAnotherNo17" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-18", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-18" }], + "section": "CloseContact18" + }, + { + "path": "/close-contact-added-18", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson18", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, + { "path": "/summary", "condition": "AddAnotherNo18" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-19", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-19" }], + "section": "CloseContact19" + }, + { + "path": "/close-contact-added-19", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "schema": {} + }, + { + "name": "AnotherPerson19", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there is another close contact", + "schema": {} + } + ], + "next": [ + { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, + { "path": "/summary", "condition": "AddAnotherNo19" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-20", + "title": "Enter the contact details for the close contact", + "components": [ + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Personal details

    " + }, + { + "name": "contact_first_name", + "options": {}, + "type": "TextField", + "title": "First name", + "schema": {} + }, + { + "name": "contact_last_name", + "options": {}, + "type": "TextField", + "title": "Last name", + "schema": {} + }, + { + "name": "Subheader", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "ContactWarningText", + "options": {}, + "type": "Html", + "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + }, + { + "name": "ContactHintText", + "options": {}, + "type": "Html", + "content": "Please provide at least one contact detail for the close contact.

    ", + "schema": {} + }, + { + "name": "contact_phone_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Phone number", + "hint": "For example, 07700 900000", + "schema": {} + }, + { + "name": "contact_email", + "options": { "required": false, "optionalText": false }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ContactPara", + "type": "Para", + "content": "You can add more close contacts after you contact.", + "schema": {} + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact20" + }, + { + "path": "/summary", + "title": "Check the details before submitting", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list 1", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "close contacts in the last 7 days of ordering a test", + "value": "Text" + } + ] + }, + { + "title": "Start list 2", + "name": "rcWCzy", + "type": "string", + "items": [ + { + "text": "the name of the close contact", + "value": "the name of the close contact" + }, + { + "text": "at least one method of contact for the close contact", + "value": "at least one method of contact for the close contact" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "AVoXlG", + "type": "string", + "items": [ + { "text": "Myself", "value": "Myself" }, + { "text": "Someone else", "value": "Someone else" } + ] + }, + { + "title": "Who we should follow up with", + "name": "lNoBeE", + "type": "string", + "items": [ + { "text": "Me", "value": "Me" }, + { "text": "Them", "value": "Them" } + ] + }, + { + "title": "Close contact (other) list", + "name": "oDwqlv", + "type": "string", + "items": [ + { "text": "people they live with", "value": "people they live with" }, + { + "text": "friends, family, or colleagues they met indoors", + "value": "friends, family, or colleagues they met indoors" + }, + { + "text": "anyone they had face-to-face contact with", + "value": "anyone they had face-to-face contact with" + }, + { + "text": "anyone they were within 2 metres of for more than 15 minutes", + "value": "anyone they were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone they travelled with in the same vehicle", + "value": "someone they travelled with in the same vehicle" + } + ] + }, + { + "title": "Close contact (you) list", + "name": "yDwqlv", + "type": "string", + "items": [ + { "text": "people you live with", "value": "people you live with" }, + { + "text": "friends, family, or colleagues you met indoors", + "value": "friends, family, or colleagues you met indoors" + }, + { + "text": "anyone you had face-to-face contact with", + "value": "anyone you had face-to-face contact with" + }, + { + "text": "anyone you were within 2 metres of for more than 15 minutes", + "value": "anyone you were within 2 metres of for more than 15 minutes" + }, + { + "text": "someone you travelled with in the same vehicle", + "value": "someone you travelled with in the same vehicle" + } + ] + }, + { + "title": "Yes or no", + "name": "YQUrgI", + "type": "string", + "items": [ + { "text": "Yes", "value": "Yes" }, + { "text": "No", "value": "No" } + ] + }, + { + "title": "Yes", + "name": "YESrgI", + "type": "string", + "items": [{ "text": "Yes", "value": "Yes" }] + } + ], + "sections": [ + { + "name": "YourDetails", + "title": "Your details", + "hideTitle": false + }, + { + "name": "WhoThisFormIsFor", + "title": "Who this form is for", + "hideTitle": true + }, + { + "name": "TheirDetails", + "title": "Details for the person who is being contact traced", + "hideTitle": false + }, + { + "name": "CaseID", + "title": "Case ID", + "hideTitle": true + }, + { + "name": "BeenInContact", + "title": "Close contacts", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, + { + "name": "CloseContact10", + "title": "Close contact 10", + "hideTitle": false + }, + { + "name": "CloseContact11", + "title": "Close contact 11", + "hideTitle": false + }, + { + "name": "CloseContact12", + "title": "Close contact 12", + "hideTitle": false + }, + { + "name": "CloseContact13", + "title": "Close contact 13", + "hideTitle": false + }, + { + "name": "CloseContact14", + "title": "Close contact 14", + "hideTitle": false + }, + { + "name": "CloseContact15", + "title": "Close contact 15", + "hideTitle": false + }, + { + "name": "CloseContact16", + "title": "Close contact 16", + "hideTitle": false + }, + { + "name": "CloseContact17", + "title": "Close contact 17", + "hideTitle": false + }, + { + "name": "CloseContact18", + "title": "Close contact 18", + "hideTitle": false + }, + { + "name": "CloseContact19", + "title": "Close contact 19", + "hideTitle": false + }, + { + "name": "CloseContact20", + "title": "Close contact 20", + "hideTitle": false + } + ], + "conditions": [ + { + "displayName": "If someone else", + "name": "lGzwuI", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Someone else", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If myself", + "name": "SypzMi", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "WhoThisFormIsFor.completing_form_for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "Myself", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If contacts", + "name": "IfContactsYes", + "value": { + "name": "If contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "Yes", "display": "Yes" } + } + ] + } + }, + { + "displayName": "If no contacts", + "name": "IfContactsNo", + "value": { + "name": "If no contacts needed", + "conditions": [ + { + "field": { + "name": "BeenInContact.been_in_contact", + "type": "RadiosField", + "display": "Close contacts option" + }, + "operator": "is", + "value": { "type": "Value", "value": "No", "display": "No" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes1", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo1", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson1", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes2", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo2", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson2", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes3", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo3", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson3", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes4", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo4", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson4", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes5", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo5", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson5", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes6", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo6", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson6", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes7", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo7", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson7", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes8", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo8", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson8", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes9", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo9", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson9", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes10", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo10", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson10", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes11", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo11", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson11", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes12", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo12", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson12", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes13", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo13", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson13", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes14", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo14", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson14", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes15", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo15", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson15", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes16", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo16", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson16", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes17", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo17", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson17", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes18", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo18", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson18", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes19", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo19", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson19", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more contacts needed", + "name": "AddAnotherYes20", + "value": { + "name": "If more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more contacts needed", + "name": "AddAnotherNo20", + "value": { + "name": "If no more contacts needed", + "conditions": [ + { + "field": { + "name": "AnotherPerson20", + "type": "YesNoField", + "display": "'Yes' if there is another close contact" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl8.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": {} +} From b1df4d0c4e85c501456cadb4ad34504a1f720764 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 15:03:30 +0100 Subject: [PATCH 350/403] Rename close-contact-form.json to close-contact-form-nl1-test.json --- .../{close-contact-form.json => close-contact-form-nl1-test.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename runner/src/server/forms/{close-contact-form.json => close-contact-form-nl1-test.json} (100%) diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form-nl1-test.json similarity index 100% rename from runner/src/server/forms/close-contact-form.json rename to runner/src/server/forms/close-contact-form-nl1-test.json From 0229f8089e668ce65161e438571e1cab8cb8d46a Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 17 Jul 2025 15:04:03 +0100 Subject: [PATCH 351/403] Rename close-contact-form-hpt.json to close-contact-form-hpt-nl1-test.json --- ...contact-form-hpt.json => close-contact-form-hpt-nl1-test.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename runner/src/server/forms/{close-contact-form-hpt.json => close-contact-form-hpt-nl1-test.json} (100%) diff --git a/runner/src/server/forms/close-contact-form-hpt.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json similarity index 100% rename from runner/src/server/forms/close-contact-form-hpt.json rename to runner/src/server/forms/close-contact-form-hpt-nl1-test.json From 1ff635dad45c1b4ee30af77da5c84d3adf951230 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 18 Jul 2025 10:36:25 +0100 Subject: [PATCH 352/403] Add files via upload --- .../close-contact-form-hpt-nl1-test.json | 162 +++++++++--------- .../forms/close-contact-form-hpt-nl5.json | 160 ++++++++--------- .../forms/close-contact-form-hpt-uat.json | 160 ++++++++--------- .../forms/close-contact-form-nl1-test.json | 162 +++++++++--------- .../server/forms/close-contact-form-nl5.json | 160 ++++++++--------- .../server/forms/close-contact-form-uat.json | 160 ++++++++--------- 6 files changed, 482 insertions(+), 482 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 71fb8d5fc6..ebaeaf6ae5 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -350,14 +350,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -383,7 +383,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -391,7 +391,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -449,14 +449,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -482,7 +482,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -490,7 +490,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -548,14 +548,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -581,7 +581,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -589,7 +589,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -647,14 +647,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -680,7 +680,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -688,7 +688,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -746,14 +746,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -779,7 +779,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -787,7 +787,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -845,14 +845,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -878,7 +878,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -886,7 +886,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -944,14 +944,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -977,7 +977,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -985,7 +985,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1043,14 +1043,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1076,7 +1076,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1084,7 +1084,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1142,14 +1142,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1175,7 +1175,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1183,7 +1183,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1241,14 +1241,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1274,7 +1274,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1282,7 +1282,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1340,14 +1340,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1373,7 +1373,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1381,7 +1381,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1439,14 +1439,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1472,7 +1472,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1480,7 +1480,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1538,14 +1538,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1571,7 +1571,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1579,7 +1579,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1637,14 +1637,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1670,7 +1670,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1678,7 +1678,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1736,14 +1736,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1769,7 +1769,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1777,7 +1777,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1835,14 +1835,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1868,7 +1868,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1876,7 +1876,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1934,14 +1934,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1967,7 +1967,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1975,7 +1975,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2033,14 +2033,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2066,7 +2066,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2074,7 +2074,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2132,14 +2132,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2165,7 +2165,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2173,7 +2173,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2231,14 +2231,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2264,7 +2264,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2272,7 +2272,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -3320,4 +3320,4 @@ "showPaymentSkippedWarningPage": false }, "feedback": {} -} \ No newline at end of file +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 1c2e870291..7cef9ddbb5 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -350,14 +350,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -383,7 +383,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -391,7 +391,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -449,14 +449,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -482,7 +482,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -490,7 +490,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -548,14 +548,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -581,7 +581,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -589,7 +589,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -647,14 +647,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -680,7 +680,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -688,7 +688,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -746,14 +746,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -779,7 +779,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -787,7 +787,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -845,14 +845,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -878,7 +878,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -886,7 +886,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -944,14 +944,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -977,7 +977,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -985,7 +985,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1043,14 +1043,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1076,7 +1076,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1084,7 +1084,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1142,14 +1142,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1175,7 +1175,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1183,7 +1183,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1241,14 +1241,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1274,7 +1274,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1282,7 +1282,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1340,14 +1340,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1373,7 +1373,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1381,7 +1381,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1439,14 +1439,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1472,7 +1472,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1480,7 +1480,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1538,14 +1538,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1571,7 +1571,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1579,7 +1579,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1637,14 +1637,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1670,7 +1670,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1678,7 +1678,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1736,14 +1736,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1769,7 +1769,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1777,7 +1777,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1835,14 +1835,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1868,7 +1868,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1876,7 +1876,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1934,14 +1934,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1967,7 +1967,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1975,7 +1975,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2033,14 +2033,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2066,7 +2066,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2074,7 +2074,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2132,14 +2132,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2165,7 +2165,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2173,7 +2173,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2231,14 +2231,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2264,7 +2264,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2272,7 +2272,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index a75b68f2e4..b81ffd2074 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -350,14 +350,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -383,7 +383,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -391,7 +391,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -449,14 +449,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -482,7 +482,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -490,7 +490,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -548,14 +548,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -581,7 +581,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -589,7 +589,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -647,14 +647,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -680,7 +680,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -688,7 +688,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -746,14 +746,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -779,7 +779,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -787,7 +787,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -845,14 +845,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -878,7 +878,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -886,7 +886,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -944,14 +944,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -977,7 +977,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -985,7 +985,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1043,14 +1043,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1076,7 +1076,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1084,7 +1084,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1142,14 +1142,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1175,7 +1175,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1183,7 +1183,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1241,14 +1241,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1274,7 +1274,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1282,7 +1282,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1340,14 +1340,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1373,7 +1373,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1381,7 +1381,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1439,14 +1439,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1472,7 +1472,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1480,7 +1480,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1538,14 +1538,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1571,7 +1571,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1579,7 +1579,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1637,14 +1637,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1670,7 +1670,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1678,7 +1678,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1736,14 +1736,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1769,7 +1769,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1777,7 +1777,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1835,14 +1835,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1868,7 +1868,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1876,7 +1876,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1934,14 +1934,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1967,7 +1967,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1975,7 +1975,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2033,14 +2033,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2066,7 +2066,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2074,7 +2074,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2132,14 +2132,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2165,7 +2165,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2173,7 +2173,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2231,14 +2231,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2264,7 +2264,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2272,7 +2272,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index 46863ac4a2..b44b9da2e2 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -349,14 +349,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -382,7 +382,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -390,7 +390,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -448,14 +448,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -481,7 +481,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -489,7 +489,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -547,14 +547,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -580,7 +580,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -588,7 +588,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -646,14 +646,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -679,7 +679,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -687,7 +687,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -745,14 +745,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -778,7 +778,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -786,7 +786,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -844,14 +844,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -877,7 +877,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -885,7 +885,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -943,14 +943,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -976,7 +976,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -984,7 +984,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1042,14 +1042,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1075,7 +1075,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1083,7 +1083,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1141,14 +1141,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1174,7 +1174,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1182,7 +1182,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1240,14 +1240,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1273,7 +1273,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1281,7 +1281,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1339,14 +1339,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1372,7 +1372,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1380,7 +1380,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1438,14 +1438,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1471,7 +1471,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1479,7 +1479,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1537,14 +1537,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1570,7 +1570,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1578,7 +1578,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1636,14 +1636,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1669,7 +1669,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1677,7 +1677,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1735,14 +1735,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1768,7 +1768,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1776,7 +1776,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1834,14 +1834,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1867,7 +1867,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1875,7 +1875,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1933,14 +1933,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1966,7 +1966,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1974,7 +1974,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2032,14 +2032,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2065,7 +2065,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2073,7 +2073,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2131,14 +2131,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2164,7 +2164,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2172,7 +2172,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2230,14 +2230,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2263,7 +2263,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2271,7 +2271,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -3319,4 +3319,4 @@ "showPaymentSkippedWarningPage": false }, "feedback": {} -} \ No newline at end of file +} diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index c47d1ef1c5..9ca92dc17c 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -349,14 +349,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -382,7 +382,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -390,7 +390,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -448,14 +448,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -481,7 +481,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -489,7 +489,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -547,14 +547,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -580,7 +580,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -588,7 +588,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -646,14 +646,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -679,7 +679,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -687,7 +687,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -745,14 +745,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -778,7 +778,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -786,7 +786,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -844,14 +844,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -877,7 +877,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -885,7 +885,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -943,14 +943,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -976,7 +976,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -984,7 +984,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1042,14 +1042,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1075,7 +1075,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1083,7 +1083,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1141,14 +1141,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1174,7 +1174,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1182,7 +1182,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1240,14 +1240,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1273,7 +1273,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1281,7 +1281,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1339,14 +1339,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1372,7 +1372,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1380,7 +1380,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1438,14 +1438,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1471,7 +1471,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1479,7 +1479,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1537,14 +1537,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1570,7 +1570,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1578,7 +1578,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1636,14 +1636,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1669,7 +1669,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1677,7 +1677,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1735,14 +1735,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1768,7 +1768,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1776,7 +1776,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1834,14 +1834,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1867,7 +1867,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1875,7 +1875,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1933,14 +1933,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1966,7 +1966,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1974,7 +1974,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2032,14 +2032,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2065,7 +2065,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2073,7 +2073,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2131,14 +2131,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2164,7 +2164,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2172,7 +2172,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2230,14 +2230,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2263,7 +2263,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2271,7 +2271,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 21d3c26a68..21abb49cd4 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -349,14 +349,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -382,7 +382,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -390,7 +390,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -448,14 +448,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -481,7 +481,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -489,7 +489,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -547,14 +547,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -580,7 +580,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -588,7 +588,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -646,14 +646,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -679,7 +679,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -687,7 +687,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -745,14 +745,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -778,7 +778,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -786,7 +786,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -844,14 +844,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -877,7 +877,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -885,7 +885,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -943,14 +943,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -976,7 +976,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -984,7 +984,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1042,14 +1042,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1075,7 +1075,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1083,7 +1083,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1141,14 +1141,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1174,7 +1174,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1182,7 +1182,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1240,14 +1240,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1273,7 +1273,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1281,7 +1281,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1339,14 +1339,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1372,7 +1372,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1380,7 +1380,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1438,14 +1438,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1471,7 +1471,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1479,7 +1479,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1537,14 +1537,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1570,7 +1570,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1578,7 +1578,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1636,14 +1636,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1669,7 +1669,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1677,7 +1677,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1735,14 +1735,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1768,7 +1768,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1776,7 +1776,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1834,14 +1834,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1867,7 +1867,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1875,7 +1875,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -1933,14 +1933,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -1966,7 +1966,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -1974,7 +1974,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2032,14 +2032,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2065,7 +2065,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2073,7 +2073,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2131,14 +2131,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2164,7 +2164,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2172,7 +2172,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", @@ -2230,14 +2230,14 @@ "content": "

    Personal details

    " }, { - "name": "first_name", + "name": "contact_first_name", "options": {}, "type": "TextField", "title": "First name", "schema": {} }, { - "name": "last_name", + "name": "contact_last_name", "options": {}, "type": "TextField", "title": "Last name", @@ -2263,7 +2263,7 @@ "schema": {} }, { - "name": "phone_number", + "name": "contact_phone_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Phone number", @@ -2271,7 +2271,7 @@ "schema": {} }, { - "name": "email_address", + "name": "contact_email", "options": { "required": false, "optionalText": false }, "type": "EmailAddressField", "title": "Email address", From 0969a36f424f0efeb340dc14304d172029e30bc6 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 18 Jul 2025 10:38:20 +0100 Subject: [PATCH 353/403] Update closeContactParams --- .../server/transforms/summaryDetails/index.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 1db41e6212..9926b1acad 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -11,12 +11,26 @@ export { SummaryDetailsTransformationMap }; */ const closeContactParams = [ - { names: ["first_name", "last_name"], to: "Full name", joiner: " " }, + { + names: ["first_name", "last_name"], + to: "Full name", + joiner: " ", + }, { names: ["phone_number", "email_address"], to: "Contact details", joiner: "\n", }, + { + names: ["contact_first_name", "contact_last_name"], + to: "Full name", + joiner: " ", + }, + { + names: ["contact_phone_number", "contact_email_address"], + to: "Contact details", + joiner: "\n", + }, ]; const summaryDetailsTransformations: SummaryDetailsTransformationMap = { From 45d1c7bcf01d319776454e20ad8538483b160b47 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 18 Jul 2025 11:36:11 +0100 Subject: [PATCH 354/403] Update index.ts --- .../server/transforms/summaryDetails/index.ts | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 9926b1acad..e6a21e4b16 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -27,18 +27,22 @@ const closeContactParams = [ joiner: " ", }, { - names: ["contact_phone_number", "contact_email_address"], + names: ["contact_phone_number", "contact_email"], to: "Contact details", joiner: "\n", }, ]; const summaryDetailsTransformations: SummaryDetailsTransformationMap = { - "close-contact-form": (details) => { + "close-contact-form-nl1-dev": (details) => { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, - "close-contact-form-uat": (details) => { + "close-contact-form-nl1-test": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-nl4": (details) => { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, @@ -46,11 +50,27 @@ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, - "close-contact-form-hpt": (details) => { + "close-contact-form-nl7": (details) => { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, - "close-contact-form-hpt-uat": (details) => { + "close-contact-form-nl8": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-uat": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl1-dev": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl1-test": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl4": (details) => { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, @@ -58,6 +78,18 @@ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, + "close-contact-form-hpt-nl7": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl8": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-uat": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, }; module.exports = summaryDetailsTransformations; From d5650f275e941acac56175228d4fe2ebe7f600bf Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 18 Jul 2025 11:41:22 +0100 Subject: [PATCH 355/403] Update index.ts From eddbd436628bf23702f0af8b42d09a088e1abd3b Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 18 Jul 2025 11:45:47 +0100 Subject: [PATCH 356/403] Update scripts --- .../close-contact-form-hpt-nl1-test.json | 40 +++++++++---------- .../forms/close-contact-form-hpt-nl5.json | 40 +++++++++---------- .../forms/close-contact-form-hpt-uat.json | 40 +++++++++---------- .../forms/close-contact-form-nl1-test.json | 40 +++++++++---------- .../server/forms/close-contact-form-nl5.json | 40 +++++++++---------- .../server/forms/close-contact-form-uat.json | 40 +++++++++---------- 6 files changed, 120 insertions(+), 120 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index ebaeaf6ae5..87699f6e68 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -407,7 +407,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -506,7 +506,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -605,7 +605,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -704,7 +704,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -803,7 +803,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -902,7 +902,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -1001,7 +1001,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1100,7 +1100,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1199,7 +1199,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1298,7 +1298,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1397,7 +1397,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1496,7 +1496,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1595,7 +1595,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1694,7 +1694,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1793,7 +1793,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1892,7 +1892,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1991,7 +1991,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2090,7 +2090,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2189,7 +2189,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2288,7 +2288,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 7cef9ddbb5..3b3327ed51 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -407,7 +407,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -506,7 +506,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -605,7 +605,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -704,7 +704,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -803,7 +803,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -902,7 +902,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -1001,7 +1001,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1100,7 +1100,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1199,7 +1199,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1298,7 +1298,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1397,7 +1397,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1496,7 +1496,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1595,7 +1595,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1694,7 +1694,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1793,7 +1793,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1892,7 +1892,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1991,7 +1991,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2090,7 +2090,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2189,7 +2189,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2288,7 +2288,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index b81ffd2074..099ef3e31f 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -407,7 +407,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -506,7 +506,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -605,7 +605,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -704,7 +704,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -803,7 +803,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -902,7 +902,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -1001,7 +1001,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1100,7 +1100,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1199,7 +1199,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1298,7 +1298,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1397,7 +1397,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1496,7 +1496,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1595,7 +1595,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1694,7 +1694,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1793,7 +1793,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1892,7 +1892,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1991,7 +1991,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2090,7 +2090,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2189,7 +2189,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2288,7 +2288,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index b44b9da2e2..a104b5461a 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -406,7 +406,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -505,7 +505,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -604,7 +604,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -703,7 +703,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -802,7 +802,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -901,7 +901,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -1000,7 +1000,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1099,7 +1099,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1198,7 +1198,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1297,7 +1297,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1396,7 +1396,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1495,7 +1495,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1594,7 +1594,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1693,7 +1693,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1792,7 +1792,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1891,7 +1891,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1990,7 +1990,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2089,7 +2089,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2188,7 +2188,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2287,7 +2287,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 9ca92dc17c..19cdbf1b57 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -406,7 +406,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -505,7 +505,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -604,7 +604,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -703,7 +703,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -802,7 +802,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -901,7 +901,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -1000,7 +1000,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1099,7 +1099,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1198,7 +1198,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1297,7 +1297,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1396,7 +1396,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1495,7 +1495,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1594,7 +1594,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1693,7 +1693,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1792,7 +1792,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1891,7 +1891,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1990,7 +1990,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2089,7 +2089,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2188,7 +2188,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2287,7 +2287,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 21abb49cd4..928b706253 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -406,7 +406,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-1" }], @@ -505,7 +505,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-2" }], @@ -604,7 +604,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-3" }], @@ -703,7 +703,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-4" }], @@ -802,7 +802,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-5" }], @@ -901,7 +901,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-6" }], @@ -1000,7 +1000,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-7" }], @@ -1099,7 +1099,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-8" }], @@ -1198,7 +1198,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-9" }], @@ -1297,7 +1297,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-10" }], @@ -1396,7 +1396,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-11" }], @@ -1495,7 +1495,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-12" }], @@ -1594,7 +1594,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-13" }], @@ -1693,7 +1693,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-14" }], @@ -1792,7 +1792,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-15" }], @@ -1891,7 +1891,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-16" }], @@ -1990,7 +1990,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-17" }], @@ -2089,7 +2089,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-18" }], @@ -2188,7 +2188,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/close-contact-added-19" }], @@ -2287,7 +2287,7 @@ "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], From 6b73b6587f2be7b43df9b4968bffccd5c74be5a4 Mon Sep 17 00:00:00 2001 From: Kathryn Dale Date: Fri, 18 Jul 2025 12:36:22 +0100 Subject: [PATCH 357/403] Revert unapproved KLS change --- runner/config/default.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index f92e25871f..cb8e271ca2 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -148,6 +148,6 @@ module.exports = { /** * File size errors */ - maxClientFileSize: 10 * 1024 * 1024, // 5MB - maxFileSizeStringInMb: "10", // The file size to render if the file is too large in MB + maxClientFileSize: 5 * 1024 * 1024, // 5MB + maxFileSizeStringInMb: "5", // The file size to render if the file is too large in MB }; From ae49a8f4fcd146aecc4d12cd9314c58d9cfbbad4 Mon Sep 17 00:00:00 2001 From: kitttang Date: Thu, 24 Jul 2025 09:56:12 +0100 Subject: [PATCH 358/403] footer pages and minor form changes. (#443) --- runner/src/server/forms/kls-enquiries.json | 6 +- runner/src/server/forms/kls-magic-link.json | 2 +- .../server/forms/kls-training-magic-link.json | 2 +- .../accessibility-statement.html | 91 ++++++++++++-- .../server/views/kls-enquiries/privacy.html | 113 +++++++++-------- .../accessibility-statement.html | 91 ++++++++++++-- .../server/views/kls-magic-link/privacy.html | 113 +++++++++-------- .../accessibility-statement.html | 91 ++++++++++++-- .../kls-training-magic-link/privacy.html | 116 ++++++++---------- .../accessibility-statement.html | 39 +++--- .../views/kls-training-request/privacy.html | 113 +++++++++-------- 11 files changed, 498 insertions(+), 279 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index 5d357b074e..18ebaac0a7 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -22,7 +22,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry.

    " + "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry. You can do this by closing your browser and reopening it to access this enquiry form.

    " } ], "next": [ @@ -225,7 +225,7 @@ }, "type":"FileUploadField", "title":"If you need to upload a file to help us deal with your enquiry, do so here.", - "hint": "To support the KLS team in dealing with your query, you may upload a file here. You can upload multiple files but the maximum size of all files combined cannot exceed 10 MB" + "hint": "You can upload multiple files but the maximum size of all files combined cannot exceed 4.95 megabytes" } @@ -723,7 +723,7 @@ "name": "FIvjTg", "type": "FileUploadField", "title": "If you need to upload a file to help us deal with your enquiry, do so here.", - "hint": "To support the KLS team in dealing with your query, you may upload a file here. You can upload multiple files but the maximum size of all files combined cannot exceed 10 MB", + "hint": "You can upload multiple files but the maximum size of all files combined cannot exceed 4.95 megabytes", "schema": {}, "options": { "multiple": true, diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index dccd7e18a6..ee02e32cd1 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -60,7 +60,7 @@ "name": "PrivacyNotice", "options": {}, "type": "Para", - "content": "By continuing, you agree to our privacy notice.", + "content": "By continuing, you agree to our privacy notice (opens in a new tab).", "schema": {} } ], diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index 007ff0cbda..227aec1d80 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -69,7 +69,7 @@ "name": "PrivacyNotice", "options": {}, "type": "Para", - "content": "By continuing, you agree to our privacy notice.", + "content": "By continuing, you agree to our privacy notice (opens in a new tab).", "schema": {} } ], diff --git a/runner/src/server/views/kls-enquiries/accessibility-statement.html b/runner/src/server/views/kls-enquiries/accessibility-statement.html index a85603a367..85c0f1c644 100644 --- a/runner/src/server/views/kls-enquiries/accessibility-statement.html +++ b/runner/src/server/views/kls-enquiries/accessibility-statement.html @@ -6,21 +6,92 @@ {% block content %}
    -
    -

    Accessibility statement for {{ name }}

    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    - This accessibility statement applies to the KLS Website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). -

    - This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard.

    -
    {% endblock %} diff --git a/runner/src/server/views/kls-enquiries/privacy.html b/runner/src/server/views/kls-enquiries/privacy.html index ef0acbad57..1b718a68f6 100644 --- a/runner/src/server/views/kls-enquiries/privacy.html +++ b/runner/src/server/views/kls-enquiries/privacy.html @@ -8,74 +8,77 @@
    -

    Privacy notice for {{ name }}

    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    About UKHSA

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service:

    • full name
    • job title
    • work address
    • -
    • telephone number
    • +
    • location
    • email address
    • -
    • computer IP address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)

    How we collect your information

    - This personal information comes from the person in the ASC setting that reports the outbreak. + This information is provided directly by you when you complete and submit the Contact Us form for KLS.

    - +

    The purposes we use your information for

    - We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. -

    - We use your information to contact you to provide advice and support to help you manage your outbreak. -

    - We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. -

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    How we protect your information

    - The personal information used by Report an outbreak is protected in a number of ways. + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction.

    - It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR.

    - Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected.

    - Whenever possible, we only use your information in a form that does not directly identify you. + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality.

    - No information that could identify individual people is ever published by UKHSA. + No information that could identify you will ever be published by us.

    Where we store your information

    - All personal information used by Report an Outbreak is held in the UK only. + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only.

    Who we share your information with

    - We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so.

    -

    With local authorities

    - Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place.

    How long we keep your information

    - We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. -

    - Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. -

    - As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. -

    - The personal information used by Report an outbreak is kept for 20 years. -

    - The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. .

    Your rights over your information

    @@ -84,15 +87,21 @@

    Your rights over your information

    • ask for a copy of any information we hold about you
    • -
    • ask for any information we hold about you that you think is inaccurate to be changed
    • -
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • -
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement

    - You can exercise any of these rights by contacting UKHSA at: + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at:

    Information Rights Team
    @@ -101,7 +110,7 @@

    Your rights over your information

    London
    E14 4PU
    United Kingdom
    - Email: InformationRights@UKHSA.gov.uk + Email: InformationRights@UKHSA.gov.uk

    @@ -110,28 +119,24 @@

    Your rights over your information

    Our legal basis to use your information

    - The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. -

    -

    - The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are:

      -
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • -
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • -
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health

    How to find out more or raise a concern

    - If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk.

    - If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to:

    Office of the Data Protection Officer
    Department of Health and Social Care
    - 1st Floor North
    39 Victoria Street
    London
    SW1H 0EU
    @@ -149,11 +154,11 @@

    How to find out more or raise a concern

    About this privacy information

    - The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly.

    - Published April 2025. + Published July 2025

    - For more information, see the UKHSA privacy notice (opens in new tab) + For more information, see the UKHSA privacy notice (opens in new tab)

    diff --git a/runner/src/server/views/kls-magic-link/accessibility-statement.html b/runner/src/server/views/kls-magic-link/accessibility-statement.html index 4011fa2329..85c0f1c644 100644 --- a/runner/src/server/views/kls-magic-link/accessibility-statement.html +++ b/runner/src/server/views/kls-magic-link/accessibility-statement.html @@ -6,21 +6,92 @@ {% block content %}
    -
    -

    Accessibility statement for {{ name }}

    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    - This accessibility statement applies to the Knowledge and Library Services website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). -

    - This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard.

    -
    {% endblock %} diff --git a/runner/src/server/views/kls-magic-link/privacy.html b/runner/src/server/views/kls-magic-link/privacy.html index ef0acbad57..1b718a68f6 100644 --- a/runner/src/server/views/kls-magic-link/privacy.html +++ b/runner/src/server/views/kls-magic-link/privacy.html @@ -8,74 +8,77 @@
    -

    Privacy notice for {{ name }}

    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    About UKHSA

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service:

    • full name
    • job title
    • work address
    • -
    • telephone number
    • +
    • location
    • email address
    • -
    • computer IP address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)

    How we collect your information

    - This personal information comes from the person in the ASC setting that reports the outbreak. + This information is provided directly by you when you complete and submit the Contact Us form for KLS.

    - +

    The purposes we use your information for

    - We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. -

    - We use your information to contact you to provide advice and support to help you manage your outbreak. -

    - We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. -

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    How we protect your information

    - The personal information used by Report an outbreak is protected in a number of ways. + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction.

    - It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR.

    - Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected.

    - Whenever possible, we only use your information in a form that does not directly identify you. + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality.

    - No information that could identify individual people is ever published by UKHSA. + No information that could identify you will ever be published by us.

    Where we store your information

    - All personal information used by Report an Outbreak is held in the UK only. + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only.

    Who we share your information with

    - We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so.

    -

    With local authorities

    - Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place.

    How long we keep your information

    - We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. -

    - Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. -

    - As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. -

    - The personal information used by Report an outbreak is kept for 20 years. -

    - The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. .

    Your rights over your information

    @@ -84,15 +87,21 @@

    Your rights over your information

    • ask for a copy of any information we hold about you
    • -
    • ask for any information we hold about you that you think is inaccurate to be changed
    • -
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • -
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement

    - You can exercise any of these rights by contacting UKHSA at: + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at:

    Information Rights Team
    @@ -101,7 +110,7 @@

    Your rights over your information

    London
    E14 4PU
    United Kingdom
    - Email: InformationRights@UKHSA.gov.uk + Email: InformationRights@UKHSA.gov.uk

    @@ -110,28 +119,24 @@

    Your rights over your information

    Our legal basis to use your information

    - The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. -

    -

    - The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are:

      -
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • -
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • -
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health

    How to find out more or raise a concern

    - If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk.

    - If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to:

    Office of the Data Protection Officer
    Department of Health and Social Care
    - 1st Floor North
    39 Victoria Street
    London
    SW1H 0EU
    @@ -149,11 +154,11 @@

    How to find out more or raise a concern

    About this privacy information

    - The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly.

    - Published April 2025. + Published July 2025

    - For more information, see the UKHSA privacy notice (opens in new tab) + For more information, see the UKHSA privacy notice (opens in new tab)

    diff --git a/runner/src/server/views/kls-training-magic-link/accessibility-statement.html b/runner/src/server/views/kls-training-magic-link/accessibility-statement.html index 9c23f0bcc9..85c0f1c644 100644 --- a/runner/src/server/views/kls-training-magic-link/accessibility-statement.html +++ b/runner/src/server/views/kls-training-magic-link/accessibility-statement.html @@ -6,21 +6,92 @@ {% block content %}
    -
    -

    Accessibility statement for {{ name }}

    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    - This accessibility statement applies to the KLS website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). -

    - This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard.

    -
    {% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/privacy.html b/runner/src/server/views/kls-training-magic-link/privacy.html index b2a672941f..1b718a68f6 100644 --- a/runner/src/server/views/kls-training-magic-link/privacy.html +++ b/runner/src/server/views/kls-training-magic-link/privacy.html @@ -8,89 +8,77 @@
    -

    Privacy notice for {{ name }}

    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    About UKHSA

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. -

    -

    - UKHSA’s responsibilities include providing the Report an outbreak service. Read about UKHSA’s responsibilities in the UKHSA strategic plan 2023 to 2026 (opens in new tab). + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC).

    - The 'Report an outbreak' service enables Adult Social Care (ASC) providers to report outbreaks of acute respiratory infection (ARI) like flu or COVID-19. It automates the outbreak risk assessment process and provides immediate relevant outbreak management advice to the setting via email. + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally.

    - This privacy notice explains what personal information we collect, use and may share for Report an outbreak. It explains what your rights are if we hold your personal information, and how you can find out more or raise a concern. + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services.

    - DHSC is the data controller for the personal information we collect, store and use to fulfil our remit. + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are.

    The information we collect

    - During an outbreak, the local health protection team needs to collect personal information so they can quickly provide the care setting with relevant outbreak management advice. -

    - The personal information we collect and use includes the reporter’s (and an optional additional contact person’s): + We collect the following personal information to help us respond to your enquiry and provide the requested service:

    • full name
    • job title
    • work address
    • -
    • telephone number
    • +
    • location
    • email address
    • -
    • computer IP address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)

    How we collect your information

    - This personal information comes from the person in the ASC setting that reports the outbreak. + This information is provided directly by you when you complete and submit the Contact Us form for KLS.

    - +

    The purposes we use your information for

    - We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. -

    - We use your information to contact you to provide advice and support to help you manage your outbreak. -

    - We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. -

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    How we protect your information

    - The personal information used by Report an outbreak is protected in a number of ways. + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction.

    - It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR.

    - Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected.

    - Whenever possible, we only use your information in a form that does not directly identify you. + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality.

    - No information that could identify individual people is ever published by UKHSA. + No information that could identify you will ever be published by us.

    Where we store your information

    - All personal information used by Report an Outbreak is held in the UK only. + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only.

    Who we share your information with

    - We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so.

    -

    With local authorities

    - Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place.

    How long we keep your information

    - We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. -

    - Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. -

    - As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. -

    - The personal information used by Report an outbreak is kept for 20 years. -

    - The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. .

    Your rights over your information

    @@ -99,15 +87,21 @@

    Your rights over your information

    • ask for a copy of any information we hold about you
    • -
    • ask for any information we hold about you that you think is inaccurate to be changed
    • -
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • -
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement

    - You can exercise any of these rights by contacting UKHSA at: + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at:

    Information Rights Team
    @@ -116,7 +110,7 @@

    Your rights over your information

    London
    E14 4PU
    United Kingdom
    - Email: InformationRights@UKHSA.gov.uk + Email: InformationRights@UKHSA.gov.uk

    @@ -125,28 +119,24 @@

    Your rights over your information

    Our legal basis to use your information

    - The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. -

    -

    - The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are:

      -
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • -
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • -
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health

    How to find out more or raise a concern

    - If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk.

    - If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to:

    Office of the Data Protection Officer
    Department of Health and Social Care
    - 1st Floor North
    39 Victoria Street
    London
    SW1H 0EU
    @@ -164,11 +154,11 @@

    How to find out more or raise a concern

    About this privacy information

    - The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly.

    - Published April 2025. + Published July 2025

    - For more information, see the UKHSA privacy notice (opens in new tab) + For more information, see the UKHSA privacy notice (opens in new tab)

    diff --git a/runner/src/server/views/kls-training-request/accessibility-statement.html b/runner/src/server/views/kls-training-request/accessibility-statement.html index 0ac50c1778..85c0f1c644 100644 --- a/runner/src/server/views/kls-training-request/accessibility-statement.html +++ b/runner/src/server/views/kls-training-request/accessibility-statement.html @@ -6,18 +6,17 @@ {% block content %}
    -
    -

    Accessibility statement for {{ name }}

    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    - This accessibility statement applies to the KLS website https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab). -

    - This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to:

        @@ -37,8 +36,10 @@

        How accessible this website is

        We know some parts of this website are not fully accessible:
          +
        • Narrator does not read out error messages in full automatically without user selection
        • you cannot modify the line height or spacing of text
        • -
        • you cannot skip to the main content when using a screen reader
        • +
        • you cannot autocomplete some form fields with assistive technology
        • +
        • you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys

        Feedback and contact information

        @@ -47,7 +48,7 @@

        Feedback and contact information


        - If you have difficulty using the website to report an outbreak, you should phone your local UKHSA health protection team (opens in new tab). + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk.

        Enforcement procedure

        @@ -68,11 +69,12 @@

        Non-accessible content

        Non-compliance with the accessibility regulations

        - Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
        -
        - There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

        - External links do not signal that they will open in a new tab, so people using a screen reader do not know that the page content is changing. This fails WCAG success criterion 4.1.3 (status changes)
        -
        + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

          +
        • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
        • +
        • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
        • +
        • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
        • +
        We plan to address these issues soon.

        Content that’s not within the scope of accessibility regulations

        @@ -85,12 +87,11 @@

        What we’re doing to improve accessibility

        Preparation of this accessibility statement

        - This statement was prepared in October 2023. It was last reviewed in April 2025.
        - This website was last tested in March 2025 against the WCAG 2.2 AA standard.
        + This statement was prepared in July 2025.
        + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
        The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard.

    -
    {% endblock %} diff --git a/runner/src/server/views/kls-training-request/privacy.html b/runner/src/server/views/kls-training-request/privacy.html index ef0acbad57..1b718a68f6 100644 --- a/runner/src/server/views/kls-training-request/privacy.html +++ b/runner/src/server/views/kls-training-request/privacy.html @@ -8,74 +8,77 @@
    -

    Privacy notice for {{ name }}

    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    About UKHSA

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dignissim porta turpis ac facilisis. Nulla ullamcorper urna vel facilisis aliquam. Nunc pretium libero vel elit posuere, quis molestie risus vestibulum. Nunc id ultrices augue. Maecenas a volutpat augue, vel dignissim nulla. Nam justo ligula, facilisis vitae lectus nec, tempor congue lacus. Integer nulla velit, laoreet in diam eget, efficitur tempor ligula. In laoreet blandit dolor, tincidunt semper nisi convallis a. Phasellus ut vestibulum eros, et consectetur nisl. Donec sed nunc sed nibh interdum gravida in in erat. Sed non ipsum ac ligula sollicitudin aliquet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. -Vivamus varius, tellus nec posuere mattis, felis odio finibus velit, eu ultricies felis quam nec justo. Suspendisse viverra tristique rhoncus. In odio erat, lobortis at tincidunt eget, tincidunt quis leo. Sed maximus mollis rutrum. Donec non sollicitudin libero. Morbi facilisis sed lacus ac iaculis. Cras fermentum pharetra luctus. Suspendisse potenti. Sed sagittis tellus tempor odio facilisis finibus. Pellentesque aliquet, ligula eget accumsan viverra, mi tellus tristique orci, non auctor massa lorem ut diam. Vivamus vel tempor sapien. Nulla congue, sapien et mattis ornare, justo quam laoreet est, sit amet tincidunt lorem felis id massa. Duis fringilla, dolor eget vestibulum hendrerit, dolor massa ultrices mi, ac efficitur est tortor vitae dolor. Nam vitae cursus justo, eu consequat mauris. Nunc in placerat velit, in tincidunt massa. -Vivamus at ex at lacus condimentum venenatis eget a magna. Curabitur dictum felis vel mi laoreet, in cursus felis vulputate. Nulla ullamcorper felis at diam cursus condimentum. Cras cursus lobortis laoreet. Duis rutrum vulputate imperdiet. Morbi lobortis imperdiet elit et iaculis. Ut sollicitudin erat eu lorem efficitur pulvinar. Nunc in gravida nisi, quis scelerisque dui. Proin risus dolor, bibendum nec diam eget, molestie tincidunt orci. Morbi id est sit amet felis ornare iaculis non sed massa. Integer ac efficitur purus. -Aenean vitae molestie lectus, in malesuada est. Integer at ipsum eu elit tincidunt elementum a eget purus. Etiam dignissim dui ut eros sodales ultrices. Curabitur aliquam viverra malesuada. In pharetra risus ut odio porta, ut ultrices justo maximus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam pharetra nibh dolor, porta ornare justo maximus in. Quisque varius ut arcu blandit tincidunt. Curabitur facilisis condimentum ante sit amet accumsan. Duis vel lacus vestibulum, hendrerit dolor non, consequat est. Duis leo eros, bibendum vel suscipit vitae, pretium mollis dui. Sed ut lectus sed dolor suscipit consequat. Nunc euismod felis nec eleifend dictum. -Aenean orci dolor, consequat eu neque in, ullamcorper tincidunt tortor. Donec non iaculis augue. Pellentesque mi risus, tristique et velit vel, fermentum rhoncus ante. Suspendisse lobortis ultricies bibendum. Nullam fringilla ante sed eros blandit, eget euismod arcu dapibus. Aenean posuere ullamcorper lectus at imperdiet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas vel mauris magna. Aliquam molestie arcu pulvinar, luctus lorem ut, congue sem. Phasellus sit amet fermentum augue, sed ullamcorper orci. Pellentesque vitae pretium libero. Nunc tortor magna, volutpat non lacus sit amet, volutpat pretium lacus. Aliquam scelerisque, felis non congue mattis, nulla mi vulputate leo, quis bibendum sapien nulla tempor est. Curabitur lacinia est diam, at blandit sapien rutrum ac. Quisque luctus augue vulputate, commodo ipsum non, ornare purus. + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service:

    • full name
    • job title
    • work address
    • -
    • telephone number
    • +
    • location
    • email address
    • -
    • computer IP address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)

    How we collect your information

    - This personal information comes from the person in the ASC setting that reports the outbreak. + This information is provided directly by you when you complete and submit the Contact Us form for KLS.

    - +

    The purposes we use your information for

    - We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. -

    - We use your information to contact you to provide advice and support to help you manage your outbreak. -

    - We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. -

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    How we protect your information

    - The personal information used by Report an outbreak is protected in a number of ways. + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction.

    - It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR.

    - Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected.

    - Whenever possible, we only use your information in a form that does not directly identify you. + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality.

    - No information that could identify individual people is ever published by UKHSA. + No information that could identify you will ever be published by us.

    Where we store your information

    - All personal information used by Report an Outbreak is held in the UK only. + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only.

    Who we share your information with

    - We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so.

    -

    With local authorities

    - Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place.

    How long we keep your information

    - We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. -

    - Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. -

    - As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. -

    - The personal information used by Report an outbreak is kept for 20 years. -

    - The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. .

    Your rights over your information

    @@ -84,15 +87,21 @@

    Your rights over your information

    • ask for a copy of any information we hold about you
    • -
    • ask for any information we hold about you that you think is inaccurate to be changed
    • -
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • -
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • -
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement

    - You can exercise any of these rights by contacting UKHSA at: + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at:

    Information Rights Team
    @@ -101,7 +110,7 @@

    Your rights over your information

    London
    E14 4PU
    United Kingdom
    - Email: InformationRights@UKHSA.gov.uk + Email: InformationRights@UKHSA.gov.uk

    @@ -110,28 +119,24 @@

    Your rights over your information

    Our legal basis to use your information

    - The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. -

    -

    - The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are:

      -
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • -
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • -
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health

    How to find out more or raise a concern

    - If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk.

    - If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to:

    Office of the Data Protection Officer
    Department of Health and Social Care
    - 1st Floor North
    39 Victoria Street
    London
    SW1H 0EU
    @@ -149,11 +154,11 @@

    How to find out more or raise a concern

    About this privacy information

    - The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly.

    - Published April 2025. + Published July 2025

    - For more information, see the UKHSA privacy notice (opens in new tab) + For more information, see the UKHSA privacy notice (opens in new tab)

    From c04c69e32037a6a5e7844afdc61de5e1b671c81d Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 24 Jul 2025 17:24:27 +0100 Subject: [PATCH 359/403] Add files via upload --- .../forms/close-contact-form-hpt-nl1-dev.json | 284 +++++++++++++++--- .../close-contact-form-hpt-nl1-test.json | 284 +++++++++++++++--- .../forms/close-contact-form-hpt-nl4.json | 284 +++++++++++++++--- .../forms/close-contact-form-hpt-nl5.json | 284 +++++++++++++++--- .../forms/close-contact-form-hpt-nl7.json | 284 +++++++++++++++--- .../forms/close-contact-form-hpt-nl8.json | 284 +++++++++++++++--- .../forms/close-contact-form-hpt-uat.json | 284 +++++++++++++++--- .../forms/close-contact-form-nl1-dev.json | 284 +++++++++++++++--- .../forms/close-contact-form-nl1-test.json | 284 +++++++++++++++--- .../server/forms/close-contact-form-nl4.json | 284 +++++++++++++++--- .../server/forms/close-contact-form-nl5.json | 284 +++++++++++++++--- .../server/forms/close-contact-form-nl7.json | 284 +++++++++++++++--- .../server/forms/close-contact-form-nl8.json | 284 +++++++++++++++--- .../server/forms/close-contact-form-uat.json | 284 +++++++++++++++--- 14 files changed, 3360 insertions(+), 616 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 1233fbe873..398372ac2d 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 87699f6e68..6f47ab24bc 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index 842f78d8e2..0cf36fbe72 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 3b3327ed51..68773d8544 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 2efb668639..2ddb220d58 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 199ddb237a..bd16eefa41 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index 099ef3e31f..efed2a8612 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -154,11 +154,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -229,11 +237,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -388,11 +404,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -487,11 +512,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -586,11 +620,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -685,11 +728,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -784,11 +836,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -883,11 +944,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -982,11 +1052,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1081,11 +1160,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1180,11 +1268,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1279,11 +1376,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1378,11 +1484,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1477,11 +1592,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1576,11 +1700,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1675,11 +1808,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1774,11 +1916,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1873,11 +2024,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1972,11 +2132,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2071,11 +2240,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2170,11 +2348,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2269,11 +2456,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index f1687b07fe..3401f482fb 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index a104b5461a..c36fe3adfd 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 37d39a4b69..3b21da4eca 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 19cdbf1b57..9fa218b356 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 12f6da2cd3..2a6bb8b187 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 48c59face6..1b1f381279 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 928b706253..ad4a1283d2 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -153,11 +153,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -228,11 +236,19 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "email_address", - "options": { "required": false }, + "options": { + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com", @@ -387,11 +403,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -486,11 +511,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -585,11 +619,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -684,11 +727,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -783,11 +835,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -882,11 +943,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -981,11 +1051,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1080,11 +1159,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1179,11 +1267,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1278,11 +1375,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1377,11 +1483,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1476,11 +1591,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1575,11 +1699,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1674,11 +1807,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1773,11 +1915,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1872,11 +2023,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -1971,11 +2131,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2070,11 +2239,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2169,11 +2347,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} @@ -2268,11 +2455,20 @@ "type": "TelephoneNumberField", "title": "Phone number", "hint": "For example, 07700 900000", - "schema": {} + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { "name": "contact_email", - "options": { "required": false, "optionalText": false }, + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, "type": "EmailAddressField", "title": "Email address", "schema": {} From 1e111834e78a63586697a1ec77c7360c4d7f6a36 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 24 Jul 2025 17:32:22 +0100 Subject: [PATCH 360/403] Add files via upload --- .../forms/close-contact-form-hpt-nl1-dev.json | 44 +++++++++---------- .../close-contact-form-hpt-nl1-test.json | 44 +++++++++---------- .../forms/close-contact-form-hpt-nl4.json | 44 +++++++++---------- .../forms/close-contact-form-hpt-nl5.json | 44 +++++++++---------- .../forms/close-contact-form-hpt-nl7.json | 44 +++++++++---------- .../forms/close-contact-form-hpt-nl8.json | 44 +++++++++---------- .../forms/close-contact-form-hpt-uat.json | 44 +++++++++---------- .../forms/close-contact-form-nl1-dev.json | 44 +++++++++---------- .../forms/close-contact-form-nl1-test.json | 44 +++++++++---------- .../server/forms/close-contact-form-nl4.json | 44 +++++++++---------- .../server/forms/close-contact-form-nl5.json | 44 +++++++++---------- .../server/forms/close-contact-form-nl7.json | 44 +++++++++---------- .../server/forms/close-contact-form-nl8.json | 44 +++++++++---------- .../server/forms/close-contact-form-uat.json | 44 +++++++++---------- 14 files changed, 308 insertions(+), 308 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 398372ac2d..28228ee164 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 6f47ab24bc..d3832168cd 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index 0cf36fbe72..6090c96cc0 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 68773d8544..b8b13a3075 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 2ddb220d58..4ada1c69fe 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index bd16eefa41..272b4d2b94 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index efed2a8612..58f4af8cb5 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -155,7 +155,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -238,7 +238,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index 3401f482fb..e0f920d9c2 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index c36fe3adfd..dd19e3bfce 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 3b21da4eca..02f7774b70 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 9fa218b356..e123a53cbe 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 2a6bb8b187..0153636090 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 1b1f381279..94307ed6c5 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index ad4a1283d2..628f42743b 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -154,7 +154,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -237,7 +237,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + "regex": "/^[0-9\\s+()-]*$/" } }, { From 2d4a0a71d9175aea73c09ec4033fcd3dfa4f4a28 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 24 Jul 2025 17:50:22 +0100 Subject: [PATCH 361/403] Add files via upload --- .../forms/close-contact-form-hpt-nl1-dev.json | 48 +++++++++---------- .../close-contact-form-hpt-nl1-test.json | 48 +++++++++---------- .../forms/close-contact-form-hpt-nl4.json | 48 +++++++++---------- .../forms/close-contact-form-hpt-nl5.json | 48 +++++++++---------- .../forms/close-contact-form-hpt-nl7.json | 48 +++++++++---------- .../forms/close-contact-form-hpt-nl8.json | 48 +++++++++---------- .../forms/close-contact-form-hpt-uat.json | 48 +++++++++---------- .../forms/close-contact-form-nl1-dev.json | 48 +++++++++---------- .../forms/close-contact-form-nl1-test.json | 48 +++++++++---------- .../server/forms/close-contact-form-nl4.json | 48 +++++++++---------- .../server/forms/close-contact-form-nl5.json | 48 +++++++++---------- .../server/forms/close-contact-form-nl7.json | 48 +++++++++---------- .../server/forms/close-contact-form-nl8.json | 48 +++++++++---------- .../server/forms/close-contact-form-uat.json | 48 +++++++++---------- 14 files changed, 336 insertions(+), 336 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 28228ee164..c44ef71574 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index d3832168cd..7fc22060df 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index 6090c96cc0..f689d62ea2 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index b8b13a3075..1b871a548d 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 4ada1c69fe..d1b78826f1 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 272b4d2b94..fedf8b0613 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index 58f4af8cb5..fcf75151e0 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -155,13 +155,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -238,13 +238,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -405,7 +405,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -513,7 +513,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -621,7 +621,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -729,7 +729,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -837,7 +837,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -945,7 +945,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1053,7 +1053,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1161,7 +1161,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1269,7 +1269,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1377,7 +1377,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1485,7 +1485,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1593,7 +1593,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1701,7 +1701,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1809,7 +1809,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1917,7 +1917,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2025,7 +2025,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2133,7 +2133,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2241,7 +2241,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2349,7 +2349,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2457,7 +2457,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index e0f920d9c2..efcf700ef4 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index dd19e3bfce..a70d538aea 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 02f7774b70..da42f79b1f 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index e123a53cbe..8ff2edbcdd 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 0153636090..2b6d1c9306 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 94307ed6c5..537ca7e655 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 628f42743b..516ccd08aa 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -154,13 +154,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -237,13 +237,13 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { "name": "email_address", "options": { - "optionalText": false, + "required": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -404,7 +404,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -512,7 +512,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -620,7 +620,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -728,7 +728,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -836,7 +836,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -944,7 +944,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1052,7 +1052,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1160,7 +1160,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1268,7 +1268,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1376,7 +1376,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1484,7 +1484,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1592,7 +1592,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1700,7 +1700,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1808,7 +1808,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -1916,7 +1916,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2024,7 +2024,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2132,7 +2132,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2240,7 +2240,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2348,7 +2348,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { @@ -2456,7 +2456,7 @@ "title": "Phone number", "hint": "For example, 07700 900000", "schema": { - "regex": "/^[0-9\\s+()-]*$/" + "regex": "^[0-9\\s+()-]*$" } }, { From 1d6b740880cd0d8875b2a12f8a5b0b8c5930cc2e Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Sun, 27 Jul 2025 16:35:43 +0100 Subject: [PATCH 362/403] Update mergeRows.ts --- runner/src/server/transforms/summaryDetails/mergeRows.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/transforms/summaryDetails/mergeRows.ts b/runner/src/server/transforms/summaryDetails/mergeRows.ts index b2f302af1b..cc92aa5b45 100644 --- a/runner/src/server/transforms/summaryDetails/mergeRows.ts +++ b/runner/src/server/transforms/summaryDetails/mergeRows.ts @@ -22,7 +22,7 @@ export function mergeRows( ...item, name: to.toLowerCase().replace(" ", "_"), ...{ label: to, title: to, rawValue: to }, - value: values.length === 0 ? "Not supplied" : values.join(joiner), + value: values.length === 0 ? null : values.join(joiner), }; } return item; From afb0e4afd2bda165131840ad6e9d23bb456bd7fc Mon Sep 17 00:00:00 2001 From: kitttang Date: Tue, 29 Jul 2025 11:08:08 +0100 Subject: [PATCH 363/403] file type error (#449) --- runner/src/server/services/upload/uploadService.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/runner/src/server/services/upload/uploadService.ts b/runner/src/server/services/upload/uploadService.ts index a434921b0b..5fc76a150a 100644 --- a/runner/src/server/services/upload/uploadService.ts +++ b/runner/src/server/services/upload/uploadService.ts @@ -207,10 +207,17 @@ validateContentType( }); isValid = true; } + return isValid; +} + invalidFileTypeError(fieldName: string, customAcceptedTypes?: string[]) { + return parsedError( + fieldName, + this.validFiletypesString(customAcceptedTypes) + ); + } - return isValid; -} downloadDocuments(paths: string[]) { + downloadDocuments(paths: string[]) { const promises = paths.map((path) => get(path, {})); return Promise.all(promises); } From 4a93d68cd9db6f7ee7140c99a51b835de36a4e94 Mon Sep 17 00:00:00 2001 From: kitttang Date: Thu, 31 Jul 2025 10:01:45 +0100 Subject: [PATCH 364/403] adding digital accessibility email to allowed domains --- runner/src/server/forms/kls-magic-link.json | 2 +- runner/src/server/forms/kls-training-magic-link.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index ee02e32cd1..eb27bd7261 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -9,7 +9,7 @@ "gtmId1": "GTM-WLKKLMQB" }, "magicLinkConfig": "kls-magic-link", - "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk", "nccpentest.com", "nccgroup.com"], + "allowedDomains": ["ukhsa.gov.uk", "dhsc.gov.uk", "nhs.net", "nhs.uk", "gov.uk", "nccpentest.com", "nccgroup.com", "digitalaccessibilitycentre.org"], "invalidDomainRedirect": "/kls-magic-link/your-email-is-not-on-our-approved-list", "serviceName": "UKHSA Knowledge and Library Services (KLS)", "name": "UKHSA Knowledge and Library Services (KLS)", diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index 227aec1d80..8f9c6f4fe7 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -16,7 +16,8 @@ "dhsc.gov.uk", "nhs.net", "nhs.uk", - "gov.uk" + "gov.uk", + "digitalaccessibilitycentre.org" ], "invalidDomainRedirect": "/kls-training-magic-link/your-email-is-not-on-our-approved-list", "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", From ed75df83ef6037b2f667e1648aaf891937cfdb33 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 1 Aug 2025 12:09:23 +0100 Subject: [PATCH 365/403] Non-HPT forms --- .../forms/close-contact-form-nl1-dev.json | 3169 ++++++++++------- .../forms/close-contact-form-nl1-test.json | 3169 ++++++++++------- .../server/forms/close-contact-form-nl4.json | 3169 ++++++++++------- .../server/forms/close-contact-form-nl5.json | 3169 ++++++++++------- .../server/forms/close-contact-form-nl7.json | 3169 ++++++++++------- .../server/forms/close-contact-form-nl8.json | 3169 ++++++++++------- .../server/forms/close-contact-form-uat.json | 3169 ++++++++++------- 7 files changed, 13335 insertions(+), 8848 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index efcf700ef4..43e4a962ab 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index a70d538aea..970b29cbfd 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index da42f79b1f..b27a4c4932 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 8ff2edbcdd..77703b5977 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 2b6d1c9306..166a2eb52e 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 537ca7e655..fb22c00a53 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 516ccd08aa..07d3c9b6bd 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -114,136 +106,194 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", "components": [ { - "name": "lcOnmo", + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "phone_number", + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" }, { - "name": "pcOnmo", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "TLaaZQ", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "phone_number", + "name": "dieFHl", "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -251,164 +301,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -419,104 +518,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -527,104 +658,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -635,104 +798,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -743,104 +938,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -851,104 +1078,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -959,104 +1218,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1067,104 +1358,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1175,104 +1498,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1283,104 +1638,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1391,104 +1778,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1499,104 +1930,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1607,104 +2067,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1715,104 +2204,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1823,104 +2341,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1931,104 +2478,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2039,104 +2615,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2147,104 +2752,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2255,104 +2889,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2363,104 +3026,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2471,27 +3163,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2499,292 +3185,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2793,16 +3437,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2811,16 +3455,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2829,16 +3473,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2847,16 +3491,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2865,16 +3509,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2883,16 +3527,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2901,16 +3545,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2919,16 +3563,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2937,16 +3581,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2955,16 +3599,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2973,16 +3617,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2991,16 +3635,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3009,16 +3653,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3027,16 +3671,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3045,16 +3689,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3063,16 +3707,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3081,16 +3725,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3099,16 +3743,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3117,16 +3761,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3135,16 +3779,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3153,16 +3797,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3171,16 +3815,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3189,16 +3833,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3207,16 +3851,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3225,16 +3869,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3243,16 +3887,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3261,16 +3905,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3279,16 +3923,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3297,16 +3941,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3315,16 +3959,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3333,16 +3977,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3351,16 +3995,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3369,16 +4013,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3387,16 +4031,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3405,16 +4049,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3423,16 +4067,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3441,16 +4085,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3459,16 +4103,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3477,16 +4121,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3495,6 +4139,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3509,10 +4154,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } From a83569e4b2ccb2b2b69b7ab723ec3d8bdac244f9 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 1 Aug 2025 12:16:21 +0100 Subject: [PATCH 366/403] HPT forms --- .../forms/close-contact-form-hpt-nl1-dev.json | 3171 ++++++++++------- .../close-contact-form-hpt-nl1-test.json | 3171 ++++++++++------- .../forms/close-contact-form-hpt-nl4.json | 3171 ++++++++++------- .../forms/close-contact-form-hpt-nl5.json | 3171 ++++++++++------- .../forms/close-contact-form-hpt-nl7.json | 3171 ++++++++++------- .../forms/close-contact-form-hpt-nl8.json | 3171 ++++++++++------- .../forms/close-contact-form-hpt-uat.json | 3171 ++++++++++------- 7 files changed, 13342 insertions(+), 8855 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index c44ef71574..73d5f1e9e4 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 7fc22060df..2a146ff07c 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index f689d62ea2..a1858674e2 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 1b871a548d..8f54b92a41 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index d1b78826f1..cbd000b152 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index fedf8b0613..39cd472d34 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index fcf75151e0..5ce8a2a3f8 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -3,36 +3,28 @@ "startPage": "/start", "pages": [ { - "title": "Identify close contacts of bird flu", + "title": "Tell us about people you've been in close contact with", "path": "/start", "components": [ { - "name": "ooHdDj", + "name": "para1", "options": {}, "type": "Para", - "content": "You can use this service if we sent an email or text asking you to complete this form. You can do this for yourself or for someone else.", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", "schema": {} }, { - "name": "tKEFcw", + "name": "para2", "options": {}, "type": "Para", - "content": "Use this service to report:", - "schema": {} - }, - { - "name": "NYuNvb", - "options": {}, - "type": "List", - "title": "Close contacts", - "list": "yRnBmv", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { - "name": "QlWuFo", + "name": "para3", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "You can use this service on behalf of someone else.", "schema": {} }, { @@ -43,32 +35,32 @@ "schema": {} }, { - "name": "VCwJTN", + "name": "tKEFcw", "options": {}, "type": "Para", - "content": "We will need some details of the people that you will list in this form. These details include:", + "content": "You'll be asked about:", "schema": {} }, { - "name": "ksyXub", + "name": "NYuNvb", "options": {}, "type": "List", - "title": "Details required", - "list": "rcWCzy", + "title": "Close contacts", + "list": "yRnBmv", "schema": {} }, { - "name": "Qkjtcn", + "name": "QlWuFo", "options": {}, "type": "Para", - "content": "You will need the details of the close contacts ready.", + "content": "It should take about 10 minutes to complete.", "schema": {} }, { "name": "TqEyQM", "options": {}, "type": "Para", - "content": "The information you give will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", "schema": {} }, { @@ -82,7 +74,7 @@ "name": "jmslVl", "options": {}, "type": "Para", - "content": "If you need help to complete this form, contact 111 for help.", + "content": "If you need help to complete this form, contact 111.", "schema": {} }, { @@ -100,12 +92,12 @@ "schema": {} } ], - "next": [{ "path": "/case-id" }], + "next": [{ "path": "/completing-form-for" }], "controller": "./pages/start.js" }, { - "path": "/case-id", "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", "components": [ { "name": "case_id", @@ -119,132 +111,190 @@ "section": "CaseID" }, { - "path": "/personal-details", - "title": "Personal details", + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { "hideTitle": true, "exposeToContext": true }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", "components": [ { - "name": "lcOnmo", + "name": "VnYxYj", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "Your first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Your last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "phone_number", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", - "options": { - "required": false, - "customValidationMessages": { - "string.empty": "Enter a valid email address", - "string.pattern.base": "Enter a valid email address" - } - }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} + "hint": "For example, sarah.philips@example.com" } ], - "next": [{ "path": "/completing-form-for" }], - "section": "YourDetails" - }, - { - "title": "Who are you completing this form for?", - "path": "/completing-form-for", - "components": [ - { - "name": "completing_form_for", - "options": { "hideTitle": true }, - "type": "RadiosField", - "title": "Who this form is for", - "list": "AVoXlG", - "schema": {} - } - ], - "next": [ - { "path": "/other-persons-details", "condition": "lGzwuI" }, - { "path": "/close-contact-you", "condition": "SypzMi" } - ], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" }, { "path": "/other-persons-details", - "title": "Other person's details", + "title": "Details of the person I am completing this form on behalf of", "components": [ { - "name": "lcOnmo", + "name": "CIzhtp", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "pcOnmo", + "name": "VnYxYja", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    Date of birth

    " }, { - "name": "TLaaZQ", + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If you are the parent, guardian or carer of this person, put down your contact details below.\n \n
    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "phone_number", + "name": "CIzhto", "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { "name": "email_address", "options": { "required": false, + "optionalText": false, "customValidationMessages": { "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" @@ -252,164 +302,213 @@ }, "type": "EmailAddressField", "title": "Email address", - "hint": "For example, sarah.philips@example.com", - "schema": {} - } - ], - "next": [{ "path": "/who-should-we-contact" }], - "section": "TheirDetails" - }, - { - "path": "/who-should-we-contact", - "title": "Who should we contact if we need to follow up?", - "components": [ - { - "name": "who_should_we_contact", - "options": {}, - "type": "RadiosField", - "title": "Who we should follow up with", - "hint": "Select 'Me' if you are the parent, guardian or carer of the other person", - "list": "lNoBeE", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { - "name": "JJOVvQ", + "name": "ValidationScript", "options": {}, - "type": "InsetText", - "content": "If you select 'Them' we may still contact you if we are unable to get a hold of them.", - "schema": {} + "type": "Html", + "content": "" } ], - "next": [{ "path": "/close-contact" }], - "section": "WhoThisFormIsFor" + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" }, { - "path": "/close-contact", - "title": "Have they been in close contact with anyone in the last 7 days?", + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone they've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (other) list", - "list": "oDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if they've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } }, - "type": "RadiosField", - "title": "Have they been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do you live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleYouLiveWith" }, { - "path": "/close-contact-you", - "title": "Have you been in close contact with anyone in the last 7 days?", + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", "components": [ { - "name": "EiNVay", + "name": "AdEVNK", "options": {}, "type": "Para", - "content": "A close contact is anyone you've been near long enough to risk spreading the virus. This includes:" + "content": "This includes:" }, { - "name": "TCnLHZ", + "name": "kjpRbq", "options": {}, "type": "List", - "title": "Close contact (you) list", - "list": "yDwqlv" + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } }, { - "name": "been_in_contact", + "name": "live_with_others", "options": { "hideTitle": true, - "customValidationMessage": "Select 'yes' if you've been in close contact" + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } }, - "type": "RadiosField", - "title": "Have you been in close contact with anyone in the last 7 days?", - "list": "YQUrgI", - "values": { "type": "listRef" }, + "type": "YesNoField", + "title": "Do they live with other people?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-1", "condition": "IfContactsYes" }, - { "path": "/summary", "condition": "IfContactsNo" } + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } ], - "section": "BeenInContact" + "section": "PeopleTheyLiveWith" }, { - "path": "/close-contact-1", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -420,104 +519,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-1" }], - "section": "CloseContact1" + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" }, { - "path": "/close-contact-added-1", - "title": "Close contact", + "path": "/person-live-with-added-1", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson1", + "name": "AnotherPersonYouLiveWith1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-2", "condition": "AddAnotherYes1" }, - { "path": "/summary", "condition": "AddAnotherNo1" } + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-2", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -528,104 +659,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-2" }], - "section": "CloseContact2" + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" }, { - "path": "/close-contact-added-2", - "title": "Close contact", + "path": "/person-live-with-added-2", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson2", + "name": "AnotherPersonYouLiveWith2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-3", "condition": "AddAnotherYes2" }, - { "path": "/summary", "condition": "AddAnotherNo2" } + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-3", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." }, { - "name": "ContactWarningText", + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -636,104 +799,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-3" }], - "section": "CloseContact3" + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" }, { - "path": "/close-contact-added-3", - "title": "Close contact", + "path": "/person-live-with-added-3", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-4", "condition": "AddAnotherYes3" }, - { "path": "/summary", "condition": "AddAnotherNo3" } + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-4", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -744,104 +939,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-4" }], - "section": "CloseContact4" + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" }, { - "path": "/close-contact-added-4", - "title": "Close contact", + "path": "/person-live-with-added-4", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-5", "condition": "AddAnotherYes4" }, - { "path": "/summary", "condition": "AddAnotherNo4" } + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-5", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -852,104 +1079,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-5" }], - "section": "CloseContact5" + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" }, { - "path": "/close-contact-added-5", - "title": "Close contact", + "path": "/person-live-with-added-5", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-6", "condition": "AddAnotherYes5" }, - { "path": "/summary", "condition": "AddAnotherNo5" } + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-6", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." }, { - "name": "contact_phone_number", + "name": "mobile_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Mobile number", + "hint": "For example, 07700 900999", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" } }, { - "name": "contact_email", + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -960,104 +1219,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-6" }], - "section": "CloseContact6" + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" }, { - "path": "/close-contact-added-6", - "title": "Close contact", + "path": "/person-live-with-added-6", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-7", "condition": "AddAnotherYes6" }, - { "path": "/summary", "condition": "AddAnotherNo6" } + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-7", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1068,104 +1359,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-7" }], - "section": "CloseContact7" + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" }, { - "path": "/close-contact-added-7", - "title": "Close contact", + "path": "/person-live-with-added-7", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-8", "condition": "AddAnotherYes7" }, - { "path": "/summary", "condition": "AddAnotherNo7" } + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-8", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " }, { - "name": "ContactWarningText", + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1176,104 +1499,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-8" }], - "section": "CloseContact8" + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" }, { - "path": "/close-contact-added-8", - "title": "Close contact", + "path": "/person-live-with-added-8", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-9", "condition": "AddAnotherYes8" }, - { "path": "/summary", "condition": "AddAnotherNo8" } + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-9", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1284,104 +1639,136 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-9" }], - "section": "CloseContact9" + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" }, { - "path": "/close-contact-added-9", - "title": "Close contact", + "path": "/person-live-with-added-9", + "title": "Person", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other people to add", "schema": {} } ], "next": [ - { "path": "/close-contact-10", "condition": "AddAnotherYes9" }, - { "path": "/summary", "condition": "AddAnotherNo9" } + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-10", - "title": "Enter the contact details for the close contact", + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another after you continue." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1392,104 +1779,148 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-10" }], - "section": "CloseContact10" + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" }, { - "path": "/close-contact-added-10", - "title": "Close contact", + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", "components": [ { - "name": "AnotherPersonSubheading", + "name": "EiNVay", "options": {}, - "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", - "schema": {} + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" }, { - "name": "AnotherPerson10", - "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "Are there other close contacts from the last 7 days?", "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." } ], "next": [ - { "path": "/close-contact-11", "condition": "AddAnotherYes10" }, - { "path": "/summary", "condition": "AddAnotherNo10" } + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "controller": "RepeatingSectionSummaryPageController" + "section": "OtherCloseContacts" }, { - "path": "/close-contact-11", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1500,104 +1931,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-11" }], - "section": "CloseContact11" + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" }, { - "path": "/close-contact-added-11", + "path": "/close-contact-added-1", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson11", + "name": "AnotherCloseContact1", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-12", "condition": "AddAnotherYes11" }, - { "path": "/summary", "condition": "AddAnotherNo11" } + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-12", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1608,104 +2068,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-12" }], - "section": "CloseContact12" + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" }, { - "path": "/close-contact-added-12", + "path": "/close-contact-added-2", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson12", + "name": "AnotherCloseContact2", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-13", "condition": "AddAnotherYes12" }, - { "path": "/summary", "condition": "AddAnotherNo12" } + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-13", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1716,104 +2205,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-13" }], - "section": "CloseContact13" + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" }, { - "path": "/close-contact-added-13", + "path": "/close-contact-added-3", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson13", + "name": "AnotherCloseContact3", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-14", "condition": "AddAnotherYes13" }, - { "path": "/summary", "condition": "AddAnotherNo13" } + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-14", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1824,104 +2342,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-14" }], - "section": "CloseContact14" + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" }, { - "path": "/close-contact-added-14", + "path": "/close-contact-added-4", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson14", + "name": "AnotherCloseContact4", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-15", "condition": "AddAnotherYes14" }, - { "path": "/summary", "condition": "AddAnotherNo14" } + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-15", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -1932,104 +2479,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-15" }], - "section": "CloseContact15" + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" }, { - "path": "/close-contact-added-15", + "path": "/close-contact-added-5", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson15", + "name": "AnotherCloseContact5", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-16", "condition": "AddAnotherYes15" }, - { "path": "/summary", "condition": "AddAnotherNo15" } + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-16", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2040,104 +2616,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-16" }], - "section": "CloseContact16" + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" }, { - "path": "/close-contact-added-16", + "path": "/close-contact-added-6", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson16", + "name": "AnotherCloseContact6", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-17", "condition": "AddAnotherYes16" }, - { "path": "/summary", "condition": "AddAnotherNo16" } + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-17", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2148,104 +2753,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-17" }], - "section": "CloseContact17" + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" }, { - "path": "/close-contact-added-17", + "path": "/close-contact-added-7", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson17", + "name": "AnotherCloseContact7", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-18", "condition": "AddAnotherYes17" }, - { "path": "/summary", "condition": "AddAnotherNo17" } + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-18", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2256,104 +2890,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-18" }], - "section": "CloseContact18" + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" }, { - "path": "/close-contact-added-18", + "path": "/close-contact-added-8", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson18", + "name": "AnotherCloseContact8", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-19", "condition": "AddAnotherYes18" }, - { "path": "/summary", "condition": "AddAnotherNo18" } + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-19", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2364,104 +3027,133 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], - "next": [{ "path": "/close-contact-added-19" }], - "section": "CloseContact19" + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" }, { - "path": "/close-contact-added-19", + "path": "/close-contact-added-9", "title": "Close contact", "components": [ { "name": "AnotherPersonSubheading", "options": {}, "type": "Html", - "content": "

    Is there another person that lives at the same address who is experiencing symptoms?

    ", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", "schema": {} }, { - "name": "AnotherPerson19", + "name": "AnotherCloseContact9", "options": { "hideTitle": true, "disableChangingFromSummary": true }, "type": "YesNoField", - "title": "'Yes' if there is another close contact", + "title": "'Yes' if there are other close contacts to add", "schema": {} } ], "next": [ - { "path": "/close-contact-20", "condition": "AddAnotherYes19" }, - { "path": "/summary", "condition": "AddAnotherNo19" } + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } ], "controller": "RepeatingSectionSummaryPageController" }, { - "path": "/close-contact-20", - "title": "Enter the contact details for the close contact", + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", "components": [ { - "name": "Subheader", + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", "options": {}, "type": "Html", - "content": "

    Personal details

    " + "content": "

    Full name

    " }, { - "name": "contact_first_name", + "name": "first_name", "options": {}, "type": "TextField", - "title": "First name", - "schema": {} + "title": "First (given) name" }, { - "name": "contact_last_name", + "name": "last_name", "options": {}, "type": "TextField", - "title": "Last name", - "schema": {} + "title": "Last (family) name" }, { - "name": "Subheader", + "name": "mWvTOY", "options": {}, "type": "Html", - "content": "

    Contact details

    " + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 18 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} }, { - "name": "ContactWarningText", + "name": "CIzhto", "options": {}, "type": "Html", - "content": "
    \n \n \n Note\n If this person is under 18, put down the contact detail of their parent or legal guardian.\n \n
    " + "content": "

    Contact details

    " }, { - "name": "ContactHintText", + "name": "dieFHl", "options": {}, "type": "Html", - "content": "Please provide at least one contact detail for the close contact.

    ", - "schema": {} + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } }, { - "name": "contact_phone_number", + "name": "landline_number", "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", - "title": "Phone number", - "hint": "For example, 07700 900000", + "title": "Landline number", + "hint": "For example, 020 7123 4567", "schema": { - "regex": "^[0-9\\s+()-]*$" + "regex": "^0([1-6][\\s\\d]{8,12})$" } }, { - "name": "contact_email", + "name": "email_address", "options": { "required": false, "optionalText": false, @@ -2472,27 +3164,21 @@ }, "type": "EmailAddressField", "title": "Email address", - "schema": {} - }, - { - "name": "ContactPara", - "type": "Para", - "content": "You can add more close contacts after you contact.", - "schema": {} + "hint": "For example, sarah.philips@example.com" }, { "name": "ValidationScript", "options": {}, "type": "Html", - "content": "" + "content": "" } ], "next": [{ "path": "/summary" }], - "section": "CloseContact20" + "section": "CloseContact10" }, { "path": "/summary", - "title": "Check the details before submitting", + "title": "Check all details before submitting the form", "components": [], "next": [], "controller": "./pages/summary.js" @@ -2500,292 +3186,250 @@ ], "lists": [ { - "title": "Start list 1", + "title": "Start list", "name": "yRnBmv", "type": "string", "items": [ { - "text": "close contacts in the last 7 days of ordering a test", - "value": "Text" - } - ] - }, - { - "title": "Start list 2", - "name": "rcWCzy", - "type": "string", - "items": [ - { - "text": "the name of the close contact", - "value": "the name of the close contact" + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" }, { - "text": "at least one method of contact for the close contact", - "value": "at least one method of contact for the close contact" + "text": "the name and contact details of other people you were in close contact with in the last 7 days", + "value": "the name and contact details of other people you were in close contact with in the last 7 days" } ] }, { "title": "Who are you completing this form for?", - "name": "AVoXlG", + "name": "ApjoNd", "type": "string", "items": [ - { "text": "Myself", "value": "Myself" }, - { "text": "Someone else", "value": "Someone else" } + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } ] }, { - "title": "Who we should follow up with", - "name": "lNoBeE", + "title": "How should we contact this person?", + "name": "TQfrjB", "type": "string", "items": [ - { "text": "Me", "value": "Me" }, - { "text": "Them", "value": "Them" } + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } ] }, { - "title": "Close contact (other) list", - "name": "oDwqlv", + "title": "Do you live with other people?", + "name": "BfWivE", "type": "string", "items": [ - { "text": "people they live with", "value": "people they live with" }, - { - "text": "friends, family, or colleagues they met indoors", - "value": "friends, family, or colleagues they met indoors" - }, - { - "text": "anyone they had face-to-face contact with", - "value": "anyone they had face-to-face contact with" - }, { - "text": "anyone they were within 2 metres of for more than 15 minutes", - "value": "anyone they were within 2 metres of for more than 15 minutes" + "text": "people who live at the same address", + "value": "people who live at the same address" }, { - "text": "someone they travelled with in the same vehicle", - "value": "someone they travelled with in the same vehicle" + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" } ] }, { - "title": "Close contact (you) list", + "title": "Close contact list", "name": "yDwqlv", "type": "string", "items": [ - { "text": "people you live with", "value": "people you live with" }, { - "text": "friends, family, or colleagues you met indoors", - "value": "friends, family, or colleagues you met indoors" + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" }, { - "text": "anyone you had face-to-face contact with", - "value": "anyone you had face-to-face contact with" + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" }, { - "text": "anyone you were within 2 metres of for more than 15 minutes", - "value": "anyone you were within 2 metres of for more than 15 minutes" + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" }, { - "text": "someone you travelled with in the same vehicle", - "value": "someone you travelled with in the same vehicle" + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" } ] - }, - { - "title": "Yes or no", - "name": "YQUrgI", - "type": "string", - "items": [ - { "text": "Yes", "value": "Yes" }, - { "text": "No", "value": "No" } - ] - }, - { - "title": "Yes", - "name": "YESrgI", - "type": "string", - "items": [{ "text": "Yes", "value": "Yes" }] } ], "sections": [ { - "name": "YourDetails", - "title": "Your details", - "hideTitle": false - }, - { - "name": "WhoThisFormIsFor", - "title": "Who this form is for", + "name": "PersonalInformation", + "title": "Personal information", "hideTitle": true }, { - "name": "TheirDetails", - "title": "Details for the person who is being contact traced", - "hideTitle": false + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true }, { - "name": "CaseID", - "title": "Case ID", + "name": "PeopleTheyLiveWith", + "title": "People they live with", "hideTitle": true }, { - "name": "BeenInContact", - "title": "Close contacts", + "name": "PersonYouLiveWith1", + "title": "Person 1", "hideTitle": true }, - { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": false }, - { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": false }, - { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": false }, - { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": false }, - { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": false }, - { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": false }, - { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": false }, - { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": false }, - { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": false }, { - "name": "CloseContact10", - "title": "Close contact 10", - "hideTitle": false + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true }, { - "name": "CloseContact11", - "title": "Close contact 11", - "hideTitle": false + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true }, { - "name": "CloseContact12", - "title": "Close contact 12", - "hideTitle": false + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true }, { - "name": "CloseContact13", - "title": "Close contact 13", - "hideTitle": false + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true }, { - "name": "CloseContact14", - "title": "Close contact 14", - "hideTitle": false + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true }, { - "name": "CloseContact15", - "title": "Close contact 15", - "hideTitle": false + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true }, { - "name": "CloseContact16", - "title": "Close contact 16", - "hideTitle": false + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true }, { - "name": "CloseContact17", - "title": "Close contact 17", - "hideTitle": false + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true }, { - "name": "CloseContact18", - "title": "Close contact 18", - "hideTitle": false + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true }, { - "name": "CloseContact19", - "title": "Close contact 19", - "hideTitle": false + "name": "OtherCloseContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true }, - { - "name": "CloseContact20", - "title": "Close contact 20", - "hideTitle": false - } + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } ], "conditions": [ { - "displayName": "If someone else", - "name": "lGzwuI", + "displayName": "If myself", + "name": "atPVdy", "value": { - "name": "If someone else", + "name": "If myself", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { - "type": "Value", - "value": "Someone else", - "display": "Someone else" - } + "value": { "type": "Value", "value": "you", "display": "Myself" } } ] } }, { - "displayName": "If myself", - "name": "SypzMi", + "displayName": "If someone else", + "name": "Dpirys", "value": { - "name": "If myself", + "name": "If someone else", "conditions": [ { "field": { - "name": "WhoThisFormIsFor.completing_form_for", + "name": "PersonalInformation.for", "type": "RadiosField", "display": "Who this form is for" }, "operator": "is", - "value": { "type": "Value", "value": "Myself", "display": "Myself" } + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } } ] } }, { - "displayName": "If contacts", - "name": "IfContactsYes", + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", "value": { - "name": "If contacts needed", + "name": "If people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "Yes", "display": "Yes" } + "value": { "type": "Value", "value": "true", "display": "true" } } ] } }, { - "displayName": "If no contacts", - "name": "IfContactsNo", + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", "value": { - "name": "If no contacts needed", + "name": "If no people you live with", "conditions": [ { "field": { - "name": "BeenInContact.been_in_contact", - "type": "RadiosField", - "display": "Close contacts option" + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" }, "operator": "is", - "value": { "type": "Value", "value": "No", "display": "No" } + "value": { "type": "Value", "value": "false", "display": "false" } } ] } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes1", + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", "value": { - "name": "If more contacts needed", + "name": "If people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2794,16 +3438,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo1", + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", "value": { - "name": "If no more contacts needed", + "name": "If no people they live with", "conditions": [ { "field": { - "name": "AnotherPerson1", + "name": "PeopleTheyLiveWith.live_with_others", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Do they live with other people?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2812,16 +3456,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes2", + "displayName": "If close contacts", + "name": "IfCloseContacts", "value": { - "name": "If more contacts needed", + "name": "If close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2830,16 +3474,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo2", + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", "value": { - "name": "If no more contacts needed", + "name": "If no close contacts", "conditions": [ { "field": { - "name": "AnotherPerson2", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "Have you been in close contact with other people in the last 7 days?" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2848,16 +3492,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes3", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2866,16 +3510,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo3", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson3", + "name": "AnotherPersonYouLiveWith1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2884,16 +3528,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes4", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2902,16 +3546,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo4", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson4", + "name": "AnotherPersonYouLiveWith2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2920,16 +3564,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes5", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2938,16 +3582,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo5", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson5", + "name": "AnotherPersonYouLiveWith3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2956,16 +3600,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes6", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -2974,16 +3618,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo6", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson6", + "name": "AnotherPersonYouLiveWith4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -2992,16 +3636,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes7", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3010,16 +3654,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo7", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson7", + "name": "AnotherPersonYouLiveWith5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3028,16 +3672,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes8", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3046,16 +3690,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo8", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson8", + "name": "AnotherPersonYouLiveWith6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3064,16 +3708,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes9", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3082,16 +3726,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo9", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson9", + "name": "AnotherPersonYouLiveWith7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3100,16 +3744,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes10", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3118,16 +3762,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo10", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson10", + "name": "AnotherPersonYouLiveWith8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3136,16 +3780,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes11", + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3154,16 +3798,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo11", + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson11", + "name": "AnotherPersonYouLiveWith9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3172,16 +3816,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes12", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3190,16 +3834,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo12", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson12", + "name": "AnotherCloseContact1", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3208,16 +3852,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes13", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3226,16 +3870,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo13", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson13", + "name": "AnotherCloseContact2", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3244,16 +3888,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes14", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3262,16 +3906,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo14", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson14", + "name": "AnotherCloseContact3", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3280,16 +3924,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes15", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3298,16 +3942,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo15", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson15", + "name": "AnotherCloseContact4", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3316,16 +3960,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes16", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3334,16 +3978,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo16", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson16", + "name": "AnotherCloseContact5", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3352,16 +3996,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes17", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3370,16 +4014,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo17", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson17", + "name": "AnotherCloseContact6", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3388,16 +4032,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes18", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3406,16 +4050,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo18", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson18", + "name": "AnotherCloseContact7", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3424,16 +4068,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes19", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3442,16 +4086,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo19", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson19", + "name": "AnotherCloseContact8", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3460,16 +4104,16 @@ } }, { - "displayName": "If more contacts needed", - "name": "AddAnotherYes20", + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", "value": { - "name": "If more contacts needed", + "name": "If more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "true", "display": "true" } @@ -3478,16 +4122,16 @@ } }, { - "displayName": "If no more contacts needed", - "name": "AddAnotherNo20", + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", "value": { - "name": "If no more contacts needed", + "name": "If no more people needed", "conditions": [ { "field": { - "name": "AnotherPerson20", + "name": "AnotherCloseContact9", "type": "YesNoField", - "display": "'Yes' if there is another close contact" + "display": "'Yes' if there is another person" }, "operator": "is", "value": { "type": "Value", "value": "false", "display": "false" } @@ -3496,6 +4140,7 @@ } } ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", "fees": [], "outputs": [ { @@ -3510,10 +4155,6 @@ ], "version": 2, "skipSummary": false, - "feeOptions": { - "allowSubmissionWithoutPayment": true, - "maxAttempts": 3, - "showPaymentSkippedWarningPage": false - }, + "feeOptions": {}, "feedback": {} } From f9d1e5ae81a37327a192504237de3b2500cf874d Mon Sep 17 00:00:00 2001 From: RowanGillUKHSA Date: Mon, 4 Aug 2025 11:03:00 +0100 Subject: [PATCH 367/403] LOPS3-587-xgov-flakey-pipeline Demoted Prisma for dependency issues --- runner/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/package.json b/runner/package.json index 6147b31b88..5e9e637c3f 100644 --- a/runner/package.json +++ b/runner/package.json @@ -122,7 +122,7 @@ "lodash-es": "^4.17.21", "nodemon": "^3.0.2", "pino": "8.15.1", - "prisma": "^6.1.0", + "prisma": "6.12.0", "sass": "^1.49.9", "sinon": "^13.0.1", "typescript": "4.9.5" From 3815a38a4974a2527bf8fef3c9b5d73971af38e2 Mon Sep 17 00:00:00 2001 From: RowanGillUKHSA Date: Mon, 4 Aug 2025 11:11:04 +0100 Subject: [PATCH 368/403] LOPS3-587-xgov-flakey-pipeline Demoted Prisma in queue model --- queue-model/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queue-model/package.json b/queue-model/package.json index 7b9563cf5e..7b32dfafba 100644 --- a/queue-model/package.json +++ b/queue-model/package.json @@ -32,10 +32,10 @@ "eslint": "^8.10.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-tsdoc": "^0.2.14", - "prisma": "^6.1.0", + "prisma": "6.12.0", "typescript": "4.9.5" }, "dependencies": { - "@prisma/client": "^6.1.0" + "@prisma/client": "6.12.0" } } From 1ee1eedbf80daaaf56c0db4b372636c783750438 Mon Sep 17 00:00:00 2001 From: kitttang Date: Wed, 6 Aug 2025 15:26:42 +0100 Subject: [PATCH 369/403] form iterations --- runner/src/server/forms/kls-enquiries.json | 159 ++++++++++-------- .../server/forms/kls-training-request.json | 28 ++- 2 files changed, 101 insertions(+), 86 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index 18ebaac0a7..6104711ace 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -140,7 +140,7 @@ } }, "type": "EmailAddressField", - "title": "Should anyone else be included in emails about this enquiry?", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below ", "schema": {} } ], @@ -344,28 +344,14 @@ "name": "etcpxo", "options": { "customValidationMessages": { - "any.required": "Enter UK only or international", - "any.only": "Enter UK only or international", - "string.empty": "Enter UK only or international" + "any.required": "Enter the geographic scope of the research", + "any.only": "Enter the geographic scope of the research", + "string.empty": "Enter the geographic scope of the research" } }, "type": "TextField", - "title": "UK only or international?", - "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", - "schema": {} - }, - { - "name": "hQXIgL", - "options": { - "maxDaysInPast": "0", - "customValidationMessages": { - "nonNumeric": "The date must be in the format of DD/MM/YYYY", - "date.min": "Desired completion date cannot be before today" - } - }, - "type": "DatePartsField", - "title": "Desired completion date", - "hint": "The KLS team will be in touch to discuss the feasibility of this date", + "title": "Do you want UK only or international research?", + "hint": "Indicate the geographic scope for which the evidence should be sourced", "schema": {} }, { @@ -438,7 +424,7 @@ "title": "What will you primarily use the results of this search for?", "list": "PxpncX", "schema": {}, - "hint": "If more than one option apply, please select the most relevant", + "hint": "If more than one option applies, please select the most relevant", "values": { "type": "listRef" } @@ -457,15 +443,31 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter your preferred results format", - "any.only": "Enter your preferred results format", - "string.empty": "Enter your preferred results format" + "any.required": "Select your preferred results format(s)", + "any.only": "Select your preferred results format(s)", + "string.empty": "Select your preferred results format(s)" } }, "type": "CheckboxesField", - "title": "What is your preferred results format?", + "title": "How would you like to receive your results?", "list": "LgzPJy", "schema": {} + }, + { + "name": "hQXIgL", + "options": { + "bold": true, + "required": true, + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date cannot be before today" + } + }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "For example, 20 01 2025. The completion time will be at least 1-2 working weeks depending on your chosen search type", + "schema": {} } ], "next": [ @@ -567,13 +569,6 @@ "title": "If you answered 'other', please give details", "schema": {} }, - { - "name": "oXOJJZ", - "options": {}, - "type": "InsetText", - "content": "A protocol describes the planned methods for your review. It should be written before your review begins and followed when you conduct the review. Guidance on writing a protocol is available in PRISMA for systematic review protocols or contact us for help.", - "schema": {} - }, { "name": "dmgVPY", "options": { @@ -590,7 +585,22 @@ "type": "listRef" }, "schema": {}, - "hint": "If so, please use the file upload facility on the next page to share it with the KLS team" + "hint": "A protocol describes the planned methods for your review. It should be written before your review begins and followed when you conduct the review. Guidance on writing a protocol is available in PRISMA for systematic review protocols or contact us for help." + }, + { + "name": "hQXIgL", + "options": { + "required": true, + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date cannot be before today" + } + }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "For example, 20 01 2025. The completion time will be at least 1-2 working weeks depending on your chosen search type", + "schema": {} } ], "next": [ @@ -691,6 +701,21 @@ "type": "MultilineTextField", "title": "Should anything be excluded?", "schema": {} + }, + { + "name": "hQXIgL", + "options": { + "required": true, + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date cannot be before today" + } + }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "For example, 20 01 2025. The completion time will be at least 1-2 working weeks depending on your chosen search type", + "schema": {} } ], "next": [ @@ -705,10 +730,15 @@ "components": [ { "name": "CKlngs", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Provide information on how the KLS team can help you", + "any.only": "Provide information on how the KLS team can help you", + "string.empty": "Provide information on how the KLS team can help you" + } + }, "type": "MultilineTextField", - "hint": "Please share as much information about your query as possible in this text box", - "title": "How might we help?", + "title": "Please share as much information as possible to help the KLS team deal with your enquiry", "schema": {} }, { @@ -874,25 +904,14 @@ "name": "UjGoiE", "options": { "customValidationMessages": { - "any.required": "Enter UK only or international", - "any.only": "Enter UK only or international", - "string.empty": "Enter UK only or international" + "any.required": "Enter the geographic scope of the research", + "any.only": "Enter the geographic scope of the research", + "string.empty": "Enter the geographic scope of the research" } }, "type": "TextField", - "hint": "Help the KLS team understand the geographic scope of your work by entering the relevant country/countries", - "title": "UK only or international?", - "schema": {} - }, - { - "name": "kgNqhg", - "options": { - "maxDaysInFuture": "", - "maxDaysInPast": "0" - }, - "type": "DatePartsField", - "hint": "The KLS team will be in touch to discuss the feasibility of this date", - "title": "Desired completion date", + "hint": "Indicate the geographic scope for which the evidence should be sourced", + "title": "Do you want UK only or international research?", "schema": {} }, { @@ -999,14 +1018,13 @@ "name": "nmlFzr", "options": { "customValidationMessages": { - "any.required": "Enter group", - "any.only": "Enter group", - "string.empty": "Enter group" + "any.required": "Select the UKHSA group to which you belong", + "any.only": "Select the UKHSA group to which you belong", + "string.empty": "Select the UKHSA group to which you belong" } }, "type": "SelectField", - "hint": "Tell us which work group you belong to", - "title": "Group", + "title": "UKHSA Group", "list": "sYQQmN", "values": { "type": "listRef" @@ -1016,14 +1034,13 @@ "name": "oUmeSI", "options": { "customValidationMessages": { - "any.required": "Enter directorate", - "any.only": "Enter directorate", - "string.empty": "Enter directorate" + "any.required": "Select the UKHSA directorate to which you belong", + "any.only": "Select the UKHSA directorate to which you belong", + "string.empty": "Select the UKHSA directorate to which you belong" } }, "type": "SelectField", - "hint": "Tell us which directorate you belong to", - "title": "Directorate", + "title": "UKHSA Directorate", "list": "pTYDbB", "schema": { "required": true @@ -1039,7 +1056,6 @@ } }, "type": "SelectField", - "hint": "Tell us your work location", "title": "Location", "list": "wrhJNi", "values": { @@ -1068,7 +1084,7 @@ } }, "type": "EmailAddressField", - "title": "Should anyone else be included in emails about this enquiry?" + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below " } ], "next": [ @@ -1115,7 +1131,7 @@ } }, "type": "EmailAddressField", - "title": "Should anyone else be included in emails about this enquiry?" + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below " }, { "name": "oCVslj", @@ -1192,7 +1208,7 @@ ] }, { - "title": "Group", + "title": "UKHSA Group", "name": "sYQQmN", "type": "string", "items": [ @@ -1219,7 +1235,7 @@ ] }, { - "title": "Directorate", + "title": "UKHSA Directorate", "name": "pTYDbB", "type": "string", "items": [ @@ -1575,6 +1591,11 @@ "text": "Full systematic review", "value": "Full systematic review" }, + { + "description": "", + "text": "Rapid review", + "value": "Rapid review" + }, { "description": "", "text": "Scoping review", @@ -1766,10 +1787,6 @@ "text": "last 5 years", "value": "5 years" }, - { - "text": "Not applicable", - "value": "Not applicable" - }, { "text": "Other", "value": "Other" diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index ce2352bd3e..16a40c1327 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -20,7 +20,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry.

    " + "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry. You can do this by closing your browser and reopening it to access this enquiry form.

    " } ], "next": [ @@ -302,14 +302,13 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter group", - "any.only": "Enter group", - "string.empty": "Enter group" + "any.required": "Select the UKHSA group to which you belong", + "any.only": "Select the UKHSA group to which you belong", + "string.empty": "Select the UKHSA group to which you belong" } }, "type": "SelectField", - "title": "Group", - "hint": "Tell us which UKHSA work group you belong to", + "title": "UKHSA Group", "list": "TjWRyC", "values": { "type": "listRef" @@ -320,14 +319,13 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter directorate", - "any.only": "Enter directorate", - "string.empty": "Enter directorate" + "any.required": "Select the UKHSA directorate to which you belong", + "any.only": "Select the UKHSA directorate to which you belong", + "string.empty": "Select the UKHSA directorate to which you belong" } }, "type": "SelectField", - "title": "Directorate", - "hint": "Tell us which directorate you belong to", + "title": "UKHSA Directorate", "list": "likBcc", "values": { "type": "listRef" @@ -371,7 +369,7 @@ } }, "type": "EmailAddressField", - "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below" } ], "next": [ @@ -433,7 +431,7 @@ } }, "type": "EmailAddressField", - "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below" }, { "name": "GjKMBs", @@ -508,7 +506,7 @@ } }, "type": "EmailAddressField", - "title": "If you would like to copy someone into emails about this enquiry, enter their email address here" + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below" } ], "next": [ @@ -740,7 +738,7 @@ ] }, { - "title": "Directorate", + "title": "UKHSA Directorate", "name": "likBcc", "type": "string", "items": [ From 5af9ae2db61a3a0199c7ae23357e7136913142c5 Mon Sep 17 00:00:00 2001 From: kitttang Date: Fri, 8 Aug 2025 16:25:37 +0100 Subject: [PATCH 370/403] adding fine grained autocomplete for name and job title --- runner/src/server/forms/kls-enquiries.json | 19 ++++++++++++++----- .../server/forms/kls-training-request.json | 6 ++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index 6104711ace..830a646864 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -98,7 +98,9 @@ }, { "name": "WWpyux", - "options": {}, + "options": { + "autocomplete":"name" + }, "type": "TextField", "title": "Full name", "schema": {} @@ -107,6 +109,7 @@ "name": "RpctHr", "options": { "required": true, + "autocomplete": "organization-title", "customValidationMessages": { "any.required": "Enter job title", "any.only": "Enter job title", @@ -1001,7 +1004,8 @@ { "name": "dagbPo", "options": { - "required": true + "required": true, + "autocomplete": "name" }, "type": "TextField", "title": "Full name" @@ -1009,7 +1013,8 @@ { "name": "uksayz", "options": { - "required": true + "required": true, + "autocomplete": "organization-title" }, "type": "TextField", "title": "Job title" @@ -1099,13 +1104,17 @@ "components": [ { "name": "nBYObd", - "options": {}, + "options": { + "autocomplete": "name" + }, "type": "TextField", "title": "Full name" }, { "name": "CNbJUr", - "options": {}, + "options": { + "autocomplete": "organization-title" + }, "type": "TextField", "title": "Job title" }, diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index 16a40c1327..8ce59b2dec 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -275,6 +275,7 @@ "name": "zmJhdG", "options": { "required": true, + "autocomplete": "name", "customValidationMessages": { "any.required": "Enter full name", "any.only": "Enter full name", @@ -288,6 +289,7 @@ "name": "XpqMGU", "options": { "required": true, + "autocomplete": "organization-title", "customValidationMessages": { "any.required": "Enter job title", "any.only": "Enter job title", @@ -386,6 +388,7 @@ "name": "kGNuQf", "options": { "required": true, + "autocomplete": "name", "customValidationMessages": { "any.required": "Enter full name", "any.only": "Enter full name", @@ -399,6 +402,7 @@ "name": "IqdqPY", "options": { "required": true, + "autocomplete": "organization-title", "customValidationMessages": { "any.required": "Enter job title", "any.only": "Enter job title", @@ -461,6 +465,7 @@ "name": "eRUvFD", "options": { "required": true, + "autocomplete": "name", "customValidationMessages": { "any.required": "Enter full name", "any.only": "Enter full name", @@ -474,6 +479,7 @@ "name": "fPTkAc", "options": { "required": true, + "autocomplete": "organization-title", "customValidationMessages": { "any.required": "Enter job title", "any.only": "Enter job title", From 75c2de36fc8aee7216c494b2d097b3760fa4dfce Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 12 Aug 2025 13:39:58 +0100 Subject: [PATCH 371/403] Add files via upload --- ...ve-feedback-on-surge-response-service.json | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 runner/src/server/forms/give-feedback-on-surge-response-service.json diff --git a/runner/src/server/forms/give-feedback-on-surge-response-service.json b/runner/src/server/forms/give-feedback-on-surge-response-service.json new file mode 100644 index 0000000000..52401bb5fc --- /dev/null +++ b/runner/src/server/forms/give-feedback-on-surge-response-service.json @@ -0,0 +1,101 @@ +{ + "metadata": {}, + "startPage": "/give-feedback-on-surge-response-service", + "pages": [ + { + "title": "Give feedback on Surge Response Service", + "path": "/give-feedback-on-surge-response-service", + "components": [ + { + "name": "czEhuv", + "options": {}, + "type": "RadiosField", + "title": "Overall, how do you feel about this service?", + "list": "bJAhcr", + "schema": {} + }, + { + "name": "JDcVLN", + "options": {}, + "type": "MultilineTextField", + "title": "How could we improve this service?", + "hint": "Do not include any personal or sensitive information.", + "schema": {} + }, + { + "name": "nlsnaO", + "options": {}, + "type": "Html", + "content": "

    If you want a reply (optional)

    " + }, + { + "name": "nXASKT", + "options": {}, + "type": "Para", + "content": "If you'd like us to get back to you, please leave your details below.\n", + "schema": {} + }, + { + "name": "wVLIXA", + "options": {}, + "type": "TextField", + "title": "Your name", + "schema": {} + }, + { + "name": "FjmgiN", + "options": {}, + "type": "EmailAddressField", + "title": "Your email address", + "hint": "We'll only use this to reply to your message", + "schema": {} + } + ], + "next": [{ "path": "/second-page" }] + }, + { + "path": "/second-page", + "title": "Second page", + "components": [], + "next": [{ "path": "/summary" }] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [], + "next": [] + } + ], + "lists": [ + { + "title": "Overall, how do you feel about this service?", + "name": "bJAhcr", + "type": "string", + "items": [ + { "text": "Very satisfied", "value": "very-satisfied" }, + { "text": "Satisfied", "value": "satisfied" }, + { + "text": "Neither satisfied nor dissatisfied", + "value": "neither-satisfied-nor-dissatisfied" + }, + { "text": "Dissatisfied", "value": "dissatisfied" }, + { "text": "Very dissatisfied", "value": "very-dissatisfied" } + ] + } + ], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "name": "Give feedback on Surge Response Service", + "feedback": { "feedbackForm": true, "url": "" }, + "phaseBanner": {} +} From 57cdbec8a466d0b87cd5ace3fa784a97ddc9f4df Mon Sep 17 00:00:00 2001 From: kitttang Date: Wed, 13 Aug 2025 18:14:35 +0100 Subject: [PATCH 372/403] form iterations 2 --- runner/src/server/forms/kls-enquiries.json | 97 +++++++++++++------ .../server/forms/kls-training-request.json | 2 +- 2 files changed, 67 insertions(+), 32 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index 6104711ace..f38dbe07ea 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -344,33 +344,39 @@ "name": "etcpxo", "options": { "customValidationMessages": { - "any.required": "Enter the geographic scope of the research", - "any.only": "Enter the geographic scope of the research", - "string.empty": "Enter the geographic scope of the research" + "any.required": "Select the geographic scope of the research" } }, - "type": "TextField", + "type": "RadiosField", "title": "Do you want UK only or international research?", "hint": "Indicate the geographic scope for which the evidence should be sourced", + "list": "zDtSLo", + "schema": {} + }, + { + "name": "thfczP", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘other’ above, please give details", "schema": {} }, { "name": "RCdnGJ", "options": { - "required": false, - "optionalText": true + "required": true }, - "type": "CheckboxesField", + "type": "RadiosField", "title": "Can we share the results with other public health professionals?", "list": "IQAoJu" }, { "name": "oNDRUt", "options": { - "required": false, - "optionalText": true + "required": true }, - "type": "CheckboxesField", + "type": "RadiosField", "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", "list": "IQAoJu" } @@ -461,7 +467,7 @@ "maxDaysInPast": "0", "customValidationMessages": { "nonNumeric": "The date must be in the format of DD/MM/YYYY", - "date.min": "Desired completion date cannot be before today" + "date.min": "Desired completion date must be in the future" } }, "type": "DatePartsField", @@ -594,7 +600,7 @@ "maxDaysInPast": "0", "customValidationMessages": { "nonNumeric": "The date must be in the format of DD/MM/YYYY", - "date.min": "Desired completion date cannot be before today" + "date.min": "Desired completion date must be in the future" } }, "type": "DatePartsField", @@ -624,7 +630,7 @@ "name": "ZKqQHi", "options": {}, "type": "RadiosField", - "title": "Evidence briefing criteria", + "title": "Evidence briefing eligibility", "list": "VPAkeH", "schema": {} }, @@ -709,12 +715,12 @@ "maxDaysInPast": "0", "customValidationMessages": { "nonNumeric": "The date must be in the format of DD/MM/YYYY", - "date.min": "Desired completion date cannot be before today" + "date.min": "Desired completion date must be in the future" } }, "type": "DatePartsField", "title": "Desired completion date", - "hint": "For example, 20 01 2025. The completion time will be at least 1-2 working weeks depending on your chosen search type", + "hint": "For example, 20 01 2025. Standard time to produce an Evidence Briefing is at least 3 working weeks", "schema": {} } ], @@ -904,33 +910,39 @@ "name": "UjGoiE", "options": { "customValidationMessages": { - "any.required": "Enter the geographic scope of the research", - "any.only": "Enter the geographic scope of the research", - "string.empty": "Enter the geographic scope of the research" + "any.required": "Select the geographic scope of the research" } }, - "type": "TextField", + "type": "RadiosField", "hint": "Indicate the geographic scope for which the evidence should be sourced", "title": "Do you want UK only or international research?", + "list": "zDtSLo", + "schema": {} + }, + { + "name": "thfczP", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘other’ above, please give details", "schema": {} }, { "name": "GxImes", "options": { - "required": false, - "optionalText": true + "required": true }, - "type": "CheckboxesField", + "type": "RadiosField", "title": "Can we share the results with other public health professionals?", "list": "IQAoJu" }, { "name": "DdsEuf", "options": { - "required": false, - "optionalText": true + "required": true }, - "type": "CheckboxesField", + "type": "RadiosField", "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", "list": "IQAoJu" } @@ -1520,12 +1532,12 @@ "items": [ { "description": "It usually takes the KLS team at least 1 working week to complete this work.", - "text": "Option 1. A list of relevant literature search results in either chronological or author order.", + "text": "A list of relevant literature search results in either chronological or author order.", "value": "Search option 1: a list of the relevant results of a literature search, in chronological or author order. Usually takes at least 1 working week." }, { "description": "It usually takes the KLS team at least 2 working weeks to complete this request.", - "text": "Option 2. A list of the relevant literature search results, organised or annotated by theme or study type.", + "text": "A list of the relevant literature search results, organised or annotated by theme or study type.", "value": "Search option 2: a list of relevant results of a literature search, organised or annotated, by theme or study type. Usually takes at least 2 working weeks." } ] @@ -1588,8 +1600,8 @@ "items": [ { "description": "", - "text": "Full systematic review", - "value": "Full systematic review" + "text": "Systematic review", + "value": "Systematic review" }, { "description": "", @@ -1922,8 +1934,31 @@ "type": "string", "items": [ { - "text": "Agree", - "value": "Agree" + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + } + ] + }, + { + "title":"Geographic scope", + "name": "zDtSLo", + "type": "string", + "items": [ + { + "text": "UK only", + "value": "UK only" + }, + { + "text": "International", + "value": "International" + }, + { + "text": "Other", + "value": "Other" } ] }, diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index 16a40c1327..a14a5a4a82 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -608,7 +608,7 @@ "value": "OHID" }, { - "text": "NHS England", + "text": "NHS England Public Health", "value": "NHSE" }, { From 990bf0e5aa46e936a37d5a73f5a6c3b5240a10e5 Mon Sep 17 00:00:00 2001 From: kitttang Date: Thu, 14 Aug 2025 15:15:50 +0100 Subject: [PATCH 373/403] patch: form iterations 3 --- runner/src/server/forms/kls-enquiries.json | 8 ++++---- runner/src/server/forms/kls-magic-link.json | 2 +- runner/src/server/forms/kls-training-magic-link.json | 2 +- runner/src/server/forms/kls-training-request.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index c8644a35dc..1414e8ed8d 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -70,7 +70,7 @@ "name": "ryhwUr", "options": {}, "type": "Html", - "content": "

    You are not eligable to use this service, however you can still contact the KLS team via the following email libraries@kls.ukhsa.gov.uk

    " + "content": "

    You are not eligible to use this service, however you can still contact the KLS team via the following email libraries@kls.ukhsa.gov.uk

    " } ], "next": [] @@ -228,7 +228,7 @@ }, "type":"FileUploadField", "title":"If you need to upload a file to help us deal with your enquiry, do so here.", - "hint": "You can upload multiple files but the maximum size of all files combined cannot exceed 4.95 megabytes" + "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes" } @@ -608,7 +608,7 @@ }, "type": "DatePartsField", "title": "Desired completion date", - "hint": "For example, 20 01 2025. The completion time will be at least 1-2 working weeks depending on your chosen search type", + "hint": "For example, 20 01 2025. Timeframe for completion will vary based on the review’s complexity, and will be discussed on a case-by-case basis.", "schema": {} } ], @@ -762,7 +762,7 @@ "name": "FIvjTg", "type": "FileUploadField", "title": "If you need to upload a file to help us deal with your enquiry, do so here.", - "hint": "You can upload multiple files but the maximum size of all files combined cannot exceed 4.95 megabytes", + "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes", "schema": {}, "options": { "multiple": true, diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index eb27bd7261..b1a13809c9 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -119,7 +119,7 @@ "name": "GVrjNV", "options": {}, "type": "Para", - "content": " The email you provided does not match our approved email criteria. We only accept emails from goverment orgainsation limited to UKHSA, OHID, Local Authorities and the NHS (nhs.uk and nhs.net).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk ", + "content": "We only accept email addresses from organisations eligible to use our services (UKHSA, OHID, Local Authority Public Health teams and NHS England Public Health staff).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk", "schema": {} } ] diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index 8f9c6f4fe7..e8d3758862 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -129,7 +129,7 @@ "name": "GVrjNV", "options": {}, "type": "Para", - "content": " The email you provided does not match our approved email criteria. We only accept emails from goverment orgainsation limited to UKHSA, OHID, Local Authorities and the NHS (nhs.uk and nhs.net).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk ", + "content": "We only accept email addresses from organisations eligible to use our services (UKHSA, OHID, Local Authority Public Health teams and NHS England Public Health staff).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk", "schema": {} } ] diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index 5d45a21282..9a389db999 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -75,7 +75,7 @@ "name": "ryhwUr", "options": {}, "type": "Html", - "content": "

    You are not eligable to use this service, however you can still contact the KLS team via the following email: libraries@kls.ukhsa.gov.uk

    " + "content": "

    You are not eligible to use this service, however you can still contact the KLS team via the following email: libraries@kls.ukhsa.gov.uk

    " } ], "next": [] @@ -551,8 +551,8 @@ "type": "string", "items": [ { - "text": "Online via teams", - "value": "Online via teams" + "text": "Online via Teams", + "value": "Online via Teams" }, { "text": "In person", From 176ff45ebadf713d3d6ff0afc8654acea77d08a0 Mon Sep 17 00:00:00 2001 From: kitttang Date: Wed, 20 Aug 2025 15:18:28 +0100 Subject: [PATCH 374/403] footer router fixes (#451) --- .../server/plugins/engine/models/FormModel.ts | 5 +- runner/src/server/plugins/router.ts | 60 +++++++++++++++++-- runner/src/server/plugins/views.ts | 4 +- 3 files changed, 62 insertions(+), 7 deletions(-) diff --git a/runner/src/server/plugins/engine/models/FormModel.ts b/runner/src/server/plugins/engine/models/FormModel.ts index 088e49b6a0..4422f81a4e 100644 --- a/runner/src/server/plugins/engine/models/FormModel.ts +++ b/runner/src/server/plugins/engine/models/FormModel.ts @@ -22,6 +22,7 @@ import { ExecutableCondition } from "server/plugins/engine/models/types"; import { DEFAULT_FEE_OPTIONS } from "server/plugins/engine/models/FormModel.feeOptions"; import { ContextComponentCollection } from "server/plugins/engine/components/ContextComponentCollection"; import { ExitOptions } from "server/plugins/engine/models/FormModel.exitOptions"; +import config from "../../../config"; class EvaluationContext { constructor(conditions, value) { @@ -49,6 +50,7 @@ export class FormModel { sections: FormDefinition["sections"] = []; options: any; name: any; + serviceStartPage: any; values: any; DefaultPageController: any = PageController; /** the id of the form used for the first url parameter eg localhost:3009/test */ @@ -98,6 +100,7 @@ export class FormModel { this.sections = def.sections; this.options = options; this.name = def.name; + this.serviceStartPage = def.fullStartPage || config.serviceStartPage || config.serviceName || "#"; this.values = result.value; if (options.defaultPageController) { @@ -289,4 +292,4 @@ export class FormModel { return { relevantPages, endPage }; } -} +} \ No newline at end of file diff --git a/runner/src/server/plugins/router.ts b/runner/src/server/plugins/router.ts index f086ee9cc4..5dcad98fea 100644 --- a/runner/src/server/plugins/router.ts +++ b/runner/src/server/plugins/router.ts @@ -4,6 +4,9 @@ import { healthCheckRoute, publicRoutes } from "../routes"; import { HapiRequest, HapiResponseToolkit } from "../types"; import config from "../config"; import getRequestInfo from "server/utils/getRequestInfo"; +import { FormModel } from "server/plugins/engine/models"; +import { feedbackReturnInfoKey } from "./engine/helpers"; +import { FeedbackContextInfo, RelativeUrl } from "./engine/feedback"; import fs from "fs"; import path from "path"; @@ -55,7 +58,13 @@ export default { return h.redirect("/help/privacy"); } - return h.view(`${url}/privacy`, { name: form.name }); + const title = `${url}/privacy`; + return h.view(title, { + name: form.name, + serviceName: form.def.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(_request, form, title) + }); }, }, { @@ -87,9 +96,17 @@ export default { return h.redirect("/help/cookies"); } - return h.view(`${url}/cookies`, { + const title = `${url}/cookies`; + return h.view(title, { analytics, name: form.name, + serviceName: form.def.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(request, form, title), + matomoUrl: form.def.analytics.matomoUrl, + matomoId: form.def.analytics.matomoId, + gtmId1: form.def.analytics.gtmId1, + gtmId2: form.def.analytics.gtmId2 }); }, }, @@ -197,7 +214,13 @@ export default { return h.redirect("/help/terms-and-conditions"); } - return h.view(`${url}/terms-and-conditions`, { name: form.name }); + const title = `${url}/terms-and-conditions`; + return h.view(title, { + name: form.name, + serviceName: form.def.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(_request, form, title) + }); }, }); @@ -227,7 +250,13 @@ export default { return h.redirect("/help/accessibility-statement"); } - return h.view(`${url}/accessibility-statement`, { name: form.name }); + const title = `${url}/accessibility-statement`; + return h.view(title, { + name: form.name, + serviceName: form.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(_request, form, title) + }); }, }); @@ -270,3 +299,26 @@ export default { }, }, }; + +function feedbackUrlFromRequest(request: HapiRequest, form: FormModel, title: string): string | void { + const feedbackUrl = (form.def.feedback?.url as any); + if (feedbackUrl) { + if (feedbackUrl.startsWith("http")) { + return feedbackUrl; + } + + const relativeFeedbackUrl = new RelativeUrl(feedbackUrl); + const returnInfo = new FeedbackContextInfo( + form.name, + title, + `${request.url.pathname}${request.url.search}` + ); + relativeFeedbackUrl.setParam( + feedbackReturnInfoKey, + returnInfo.toString() + ); + return relativeFeedbackUrl.toString(); + } + + return undefined; +} \ No newline at end of file diff --git a/runner/src/server/plugins/views.ts b/runner/src/server/plugins/views.ts index d970044350..acfe3b2dd1 100644 --- a/runner/src/server/plugins/views.ts +++ b/runner/src/server/plugins/views.ts @@ -83,7 +83,7 @@ export default { BROWSER_REFRESH_URL: config.browserRefreshUrl, sessionTimeout: config.sessionTimeout, skipTimeoutWarning: false, - serviceStartPage: request.server?.app?.forms?.[request.params?.id]?.def?.fullStartPage || config.serviceName || "#", + serviceStartPage: request.server?.app?.forms?.[request.params?.id]?.def?.fullStartPage || config.serviceStartPage || config.serviceName || "#", privacyPolicyUrl: config.privacyPolicyUrl || "/help/privacy", phaseTag: config.phaseTag, navigation: request?.auth.isAuthenticated @@ -93,4 +93,4 @@ export default { }, }, -}; +}; \ No newline at end of file From 17ff1613fa840fd0d84a9ce32826e2e87d3b3747 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 20 Aug 2025 15:23:36 +0100 Subject: [PATCH 375/403] Add files via upload --- runner/src/server/forms/close-contact-form-hpt-nl1-dev.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl1-test.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl4.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl5.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl7.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl8.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-uat.json | 5 ++++- runner/src/server/forms/close-contact-form-nl1-dev.json | 5 ++++- runner/src/server/forms/close-contact-form-nl1-test.json | 5 ++++- runner/src/server/forms/close-contact-form-nl4.json | 5 ++++- runner/src/server/forms/close-contact-form-nl5.json | 5 ++++- runner/src/server/forms/close-contact-form-nl7.json | 5 ++++- runner/src/server/forms/close-contact-form-nl8.json | 5 ++++- runner/src/server/forms/close-contact-form-uat.json | 5 ++++- 14 files changed, 56 insertions(+), 14 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index c44ef71574..a1ef3e0512 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 7fc22060df..c0b97454b2 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index f689d62ea2..7680083b48 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 1b871a548d..1d642aa842 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index d1b78826f1..dc542f26fa 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index fedf8b0613..6442e53488 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index fcf75151e0..09950e87a9 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -3515,5 +3515,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index efcf700ef4..17104d535a 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index a70d538aea..e2f0d40ee4 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index da42f79b1f..f23b3b15fb 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 8ff2edbcdd..47fc117da2 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 2b6d1c9306..b8286d545f 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 537ca7e655..a024f6e134 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 516ccd08aa..113bb6d9d8 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -3514,5 +3514,8 @@ "maxAttempts": 3, "showPaymentSkippedWarningPage": false }, - "feedback": {} + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } } From cd83f0b4920153948cb5343610416d22bd5084a5 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 20 Aug 2025 15:26:04 +0100 Subject: [PATCH 376/403] Update and rename give-feedback-on-surge-response-service.json to close-contact-feedback.json --- ...rvice.json => close-contact-feedback.json} | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) rename runner/src/server/forms/{give-feedback-on-surge-response-service.json => close-contact-feedback.json} (90%) diff --git a/runner/src/server/forms/give-feedback-on-surge-response-service.json b/runner/src/server/forms/close-contact-feedback.json similarity index 90% rename from runner/src/server/forms/give-feedback-on-surge-response-service.json rename to runner/src/server/forms/close-contact-feedback.json index 52401bb5fc..69b8428b06 100644 --- a/runner/src/server/forms/give-feedback-on-surge-response-service.json +++ b/runner/src/server/forms/close-contact-feedback.json @@ -1,10 +1,10 @@ { "metadata": {}, - "startPage": "/give-feedback-on-surge-response-service", + "startPage": "/feedback", "pages": [ { "title": "Give feedback on Surge Response Service", - "path": "/give-feedback-on-surge-response-service", + "path": "/feedback", "components": [ { "name": "czEhuv", @@ -51,12 +51,6 @@ "schema": {} } ], - "next": [{ "path": "/second-page" }] - }, - { - "path": "/second-page", - "title": "Second page", - "components": [], "next": [{ "path": "/summary" }] }, { @@ -87,7 +81,16 @@ "sections": [], "conditions": [], "fees": [], - "outputs": [], + "outputs": [ + { + "name": "Ric43H5Ctwl4NBDC9x1_4", + "title": "email", + "type": "email", + "outputConfiguration": { + "emailAddress": "calum.hemphill@ukhsa.gov.uk" + } + } + ], "version": 2, "skipSummary": false, "feeOptions": { From 9781eca8350f4c0ea6b3d1e2f2b6eb637a90e260 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 20 Aug 2025 15:29:35 +0100 Subject: [PATCH 377/403] Make name and email fields optional --- runner/src/server/forms/close-contact-feedback.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/close-contact-feedback.json b/runner/src/server/forms/close-contact-feedback.json index 69b8428b06..9e7b8ce276 100644 --- a/runner/src/server/forms/close-contact-feedback.json +++ b/runner/src/server/forms/close-contact-feedback.json @@ -37,14 +37,20 @@ }, { "name": "wVLIXA", - "options": {}, + "options": { + "required": false, + "optionalText": false + }, "type": "TextField", "title": "Your name", "schema": {} }, { "name": "FjmgiN", - "options": {}, + "options": { + "required": false, + "optionalText": false + }, "type": "EmailAddressField", "title": "Your email address", "hint": "We'll only use this to reply to your message", From c70e4fa1b3ac1cbb1500052f99fb0c67be4f4b75 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 21 Aug 2025 16:12:12 +0100 Subject: [PATCH 378/403] Change button text to "Send feedback" in close-contact-feedback.json --- runner/src/server/forms/close-contact-feedback.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runner/src/server/forms/close-contact-feedback.json b/runner/src/server/forms/close-contact-feedback.json index 9e7b8ce276..5cd12fe2db 100644 --- a/runner/src/server/forms/close-contact-feedback.json +++ b/runner/src/server/forms/close-contact-feedback.json @@ -5,6 +5,9 @@ { "title": "Give feedback on Surge Response Service", "path": "/feedback", + "controller": "MultiStartPageController", + "continueButtonText": "Send feedback", + "showContinueButton": true, "components": [ { "name": "czEhuv", From cfba59a1c9af28a7d80359d5590a0629733b5180 Mon Sep 17 00:00:00 2001 From: ramonrodgal <86927740+ramonrodgal@users.noreply.github.com> Date: Wed, 27 Aug 2025 16:54:25 +0100 Subject: [PATCH 379/403] fix: avoid duplicate form submissions (#465) --- runner/src/server/views/custom-summary.html | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/runner/src/server/views/custom-summary.html b/runner/src/server/views/custom-summary.html index 75a1e7ee3b..847ccef54e 100644 --- a/runner/src/server/views/custom-summary.html +++ b/runner/src/server/views/custom-summary.html @@ -117,7 +117,7 @@

    Declaration

    {% endif %} -
    + + + {% endblock %} From abf5465afd48fb439228e66cd72d9eb1c487af43 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 29 Aug 2025 12:44:56 +0100 Subject: [PATCH 380/403] Update close-contact-feedback.json --- runner/src/server/forms/close-contact-feedback.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/runner/src/server/forms/close-contact-feedback.json b/runner/src/server/forms/close-contact-feedback.json index 5cd12fe2db..f70d13275e 100644 --- a/runner/src/server/forms/close-contact-feedback.json +++ b/runner/src/server/forms/close-contact-feedback.json @@ -5,7 +5,6 @@ { "title": "Give feedback on Surge Response Service", "path": "/feedback", - "controller": "MultiStartPageController", "continueButtonText": "Send feedback", "showContinueButton": true, "components": [ @@ -92,16 +91,18 @@ "fees": [], "outputs": [ { - "name": "Ric43H5Ctwl4NBDC9x1_4", - "title": "email", + "name": "FeedbackForm", + "title": "Close contact FeedbackForm", "type": "email", "outputConfiguration": { - "emailAddress": "calum.hemphill@ukhsa.gov.uk" + "apiKey": "chemphill-74015135-6bdb-40ea-bea1-6c538f593925-9e2ac643-bc90-4552-b856-cd3ecac99ce7", + "emailAddress": "calum.hemphill@ukhsa.gov.uk", + "notifyTemplateId": "2218d301-9005-472c-8116-cb5e533a8bf1" } } ], "version": 2, - "skipSummary": false, + "skipSummary": true, "feeOptions": { "allowSubmissionWithoutPayment": true, "maxAttempts": 3, From aedfe2a4a403f9a693dfaae5914cc8a3ef4fad36 Mon Sep 17 00:00:00 2001 From: kitttang Date: Fri, 29 Aug 2025 17:37:33 +0100 Subject: [PATCH 381/403] kls form iterations 4 --- runner/src/server/forms/kls-enquiries.json | 163 +++++++++++++----- runner/src/server/forms/kls-magic-link.json | 4 +- .../server/forms/kls-training-magic-link.json | 8 +- .../server/forms/kls-training-request.json | 64 +++---- 4 files changed, 161 insertions(+), 78 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index 1414e8ed8d..cd5647af3c 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -39,7 +39,13 @@ "components": [ { "name": "ZpmVWP", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the organisation you work for", + "any.only": "Select the organisation you work for", + "string.empty": "Select the organisation you work for" + } + }, "type": "RadiosField", "title": "Organisation", "hint": "The KLS service is available to staff from: UK Health Security Agency, Office for Health Improvement and Disparities, NHS England Public Health, and Local Authority Public Health. \n\nIf you do not belong to one of these organisations you can still contact the KLS team by selecting the 'Other' option to find the team's email address.", @@ -168,6 +174,11 @@ { "name": "tUKBgj", "options": { + "customValidationMessages":{ + "any.required": "Select the option that best matches your enquiry", + "any.only": "Select the option that best matches your enquiry", + "string.empty": "Select the option that best matches your enquiry" + }, "exposeToContext": false }, "type": "RadiosField", @@ -228,7 +239,7 @@ }, "type":"FileUploadField", "title":"If you need to upload a file to help us deal with your enquiry, do so here.", - "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes" + "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes. To remove uploaded files, click 'Choose Files' again, select nothing and close the window." } @@ -255,14 +266,29 @@ "name": "voCgKn", "options": {}, "type": "InsetText", - "content": "Sign up to comprehensive alerts highlighting the latest research from peer-reviewed publications about important public health topics. Select the topics you want to sign up for below." + "content": "Sign up to comprehensive alerts that bring together the latest research from peer-reviewed publications about important public health priorities. Select the topics you want to sign up for below." }, { "name": "Nuedpc", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the alert(s) you want to subscribe to", + "any.only": "Select the alert(s) you want to subscribe to", + "string.empty": "Select the alert(s) you want to subscribe to" + } + }, "type": "CheckboxesField", "title": "Which alerts do you want to subscribe to?", "list": "gTPicc" + }, + { + "name": "QiohsW", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If you selected 'other' above, please describe the topic of your requested current awareness alert", + "hint": "Any new alert request will be considered on a case-by-case basis. A member of the KLS team will be in touch to discuss the best option to meet your requirements." } ], "next": [ @@ -287,12 +313,18 @@ "name": "yYKOmJ", "options": {}, "type": "Para", - "content": "Please complete as many fields as you can, otherwise the KLS team will need to contact you for more information ", + "content": "Please share as much information as possible to help the KLS team deal with your enquiry", "schema": {} }, { "name": "LuoKqU", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Provide your focussed question", + "any.only": "Provide your focussed question", + "string.empty": "Provide your focussed question" + } + }, "type": "MultilineTextField", "title": "What is your focussed question?", "schema": {} @@ -368,7 +400,12 @@ { "name": "RCdnGJ", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share the results with other public health professionals", + "any.only": "Select whether we can share the results with other public health professionals", + "string.empty": "Select whether we can share the results with other public health professionals" + } }, "type": "RadiosField", "title": "Can we share the results with other public health professionals?", @@ -377,7 +414,12 @@ { "name": "oNDRUt", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share your contact details with other public health professionals", + "any.only": "Select whether we can share your contact details with other public health professionals", + "string.empty": "Select whether we can share your contact details with other public health professionals" + } }, "type": "RadiosField", "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", @@ -424,9 +466,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter what you will use the results for", - "any.only": "Enter what you will use the results for", - "string.empty": "Enter what you will use the results for" + "any.required": "Select the primary use for the results", + "any.only": "Select the primary use for the results", + "string.empty": "Select the primary use for the results" } }, "type": "SelectField", @@ -501,9 +543,9 @@ "name": "lIUPMw", "options": { "customValidationMessages": { - "any.required": "Enter what type of review you are doing", - "any.only": "Enter what type of review you are doing", - "string.empty": "Enter what type of review you are doing" + "any.required": "Select the type of review you are doing", + "any.only": "Select the type of review you are doing", + "string.empty": "Select the type of review you are doing" } }, "type": "SelectField", @@ -529,9 +571,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter the reason for conducting this review", - "any.only": "Enter the reason for conducting this review", - "string.empty": "Enter the reason for conducting this review" + "any.required": "Select the reason for conducting this review", + "any.only": "Select the reason for conducting this review", + "string.empty": "Select the reason for conducting this review" } }, "type": "SelectField", @@ -556,9 +598,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter where you intend to publish your review", - "any.only": "Enter where you intend to publish your review", - "string.empty": "Enter where you intend to publish your review" + "any.required": "Select where you intend to publish your review", + "any.only": "Select where you intend to publish your review", + "string.empty": "Select where you intend to publish your review" } }, "type": "SelectField", @@ -583,9 +625,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select have you written a protocol", - "any.only": "Select have you written a protocol", - "string.empty": "Select have you written a protocol" + "any.required": "Select whether you have written a protocol", + "any.only": "Select whether you have written a protocol", + "string.empty": "Select whether you have written a protocol" } }, "type": "YesNoField", @@ -631,7 +673,13 @@ }, { "name": "ZKqQHi", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select evidence briefing eligibility", + "any.only": "Select evidence briefing eligibility", + "string.empty": "Select evidence briefing eligibility" + } + }, "type": "RadiosField", "title": "Evidence briefing eligibility", "list": "VPAkeH", @@ -762,7 +810,7 @@ "name": "FIvjTg", "type": "FileUploadField", "title": "If you need to upload a file to help us deal with your enquiry, do so here.", - "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes", + "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes. To remove uploaded files, click 'Choose Files' again, select nothing and close the window.", "schema": {}, "options": { "multiple": true, @@ -792,7 +840,13 @@ "components": [ { "name": "wyvXTj", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select the organisation you work for", + "any.only": "Select the organisation you work for", + "string.empty": "Select the organisation you work for" + } + }, "type": "RadiosField", "title": "Which organisation do you work for?", "hint": "", @@ -831,7 +885,13 @@ }, { "name": "VeQCVM", - "options": {}, + "options": { + "customValidationMessages":{ + "any.required": "Select the option that best matches your enquiry", + "any.only": "Select the option that best matches your enquiry", + "string.empty": "Select the option that best matches your enquiry" + } + }, "type": "RadiosField", "list": "AUYYCW", "title": "Which option best matches your enquiry?", @@ -863,12 +923,18 @@ "name": "fXvmRh", "options": {}, "type": "Para", - "content": "Please complete as many fields as you can, otherwise the KLS team will need to contact you for more information ", + "content": "Please share as much information as possible to help the KLS team deal with your enquiry", "schema": {} }, { "name": "qvJHYP", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Provide your focussed question", + "any.only": "Provide your focussed question", + "string.empty": "Provide your focussed question" + } + }, "type": "MultilineTextField", "title": "What is your focussed question?", "schema": {} @@ -934,7 +1000,12 @@ { "name": "GxImes", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share the results with other public health professionals", + "any.only": "Select whether we can share the results with other public health professionals", + "string.empty": "Select whether we can share the results with other public health professionals" + } }, "type": "RadiosField", "title": "Can we share the results with other public health professionals?", @@ -943,7 +1014,12 @@ { "name": "DdsEuf", "options": { - "required": true + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share your contact details with other public health professionals", + "any.only": "Select whether we can share your contact details with other public health professionals", + "string.empty": "Select whether we can share your contact details with other public health professionals" + } }, "type": "RadiosField", "title": "Can we share your contact details so other public health professionals can contact you with queries about the work you are doing?", @@ -1067,9 +1143,9 @@ "name": "EkwRix", "options": { "customValidationMessages": { - "any.required": "Enter location", - "any.only": "Enter location", - "string.empty": "Enter location" + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" } }, "type": "SelectField", @@ -1158,9 +1234,9 @@ "name": "oCVslj", "options": { "customValidationMessages": { - "any.required": "Enter location", - "any.only": "Enter location", - "string.empty": "Enter location" + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" } }, "type": "SelectField", @@ -1571,6 +1647,11 @@ "text": "Guidelines", "value": "Guidelines" }, + { + "description": "", + "text": "Incident support", + "value": "Incident support" + }, { "description": "", "text": "Keeping up to date", @@ -1984,10 +2065,6 @@ "text": "Antimicrobial Resistance", "value": "Antimicrobial Resistance" }, - { - "text": "COVID-19 Re-infection", - "value": "COVID-19 Re-infection" - }, { "text": "Global Public Health Security", "value": "Global Public Health Security" @@ -2019,6 +2096,10 @@ { "text": "Vector Borne Disease", "value": "Vector Borne Disease" + }, + { + "text": "Other", + "value": "Other" } ] } diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json index b1a13809c9..f35e99057e 100644 --- a/runner/src/server/forms/kls-magic-link.json +++ b/runner/src/server/forms/kls-magic-link.json @@ -42,7 +42,9 @@ "options": { "exposeToContext": true, "customValidationMessages": { - "string.empty": "Enter an email address", + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } } diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json index e8d3758862..290ed6dc6f 100644 --- a/runner/src/server/forms/kls-training-magic-link.json +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -49,9 +49,9 @@ "options": { "exposeToContext": true, "customValidationMessages": { - "any.required": "Enter an email address", - "any.only": "Enter an email address", - "string.empty": "Enter an email address", + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, @@ -129,7 +129,7 @@ "name": "GVrjNV", "options": {}, "type": "Para", - "content": "We only accept email addresses from organisations eligible to use our services (UKHSA, OHID, Local Authority Public Health teams and NHS England Public Health staff).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk", + "content": " The email you provided does not match our approved email criteria. We only accept emails from goverment orgainsation limited to UKHSA, OHID, Local Authorities and the NHS (nhs.uk and nhs.net).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk ", "schema": {} } ] diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index 9a389db999..7af3580096 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -40,9 +40,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select which organisation do you belong to", - "any.only": "Select which organisation do you belong to", - "string.empty": "Select which organisation do you belong to" + "any.required": "Select the organisation you work for", + "any.only": "Select the organisation you work for", + "string.empty": "Select the organisation you work for" } }, "type": "RadiosField", @@ -108,9 +108,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select what training session would you like us to provide", - "any.only": "Select what training session would you like us to provide", - "string.empty": "Select what training session would you like us to provide" + "any.required": "Select a training format", + "any.only": "Select a training format", + "string.empty": "Select a training format" } }, "type": "RadiosField", @@ -126,9 +126,9 @@ "options": { "required": true, "customValidationMessages": { - "number.base": "What is the approximate number of participants? (must be a number)", + "number.base": "Enter number of participants", "number.min": "Number of participants must be greater than 0", - "number.empty": "What is the approximate number of participants? (must be a number)" + "number.empty": "Enter number of participants" } }, "hint": "Enter number of participants", @@ -143,9 +143,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select what is your preferred delivery type", - "any.only": "Select what is your preferred delivery type", - "string.empty": "Select what is your preferred delivery type" + "any.required": "Select your preferred delivery type", + "any.only": "Select your preferred delivery type", + "string.empty": "Select your preferred delivery typee" } }, "type": "RadiosField", @@ -193,9 +193,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select an organisation", - "any.only": "Select an organisation", - "string.empty": "Select an organisation" + "any.required": "Select the organisation you belong to", + "any.only": "Select the organisation you belong to", + "string.empty": "Select the organisation you belong to" } }, "type": "RadiosField", @@ -207,9 +207,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Select what topic(s) would you like to cover", - "any.only": "Select what topic(s) would you like to cover", - "string.empty": "Select what topic(s) would you like to cover" + "any.required": "Select the topic(s) you would like to cover", + "any.only": "Select the topic(s) you would like to cover", + "string.empty": "Select the topic(s) you would like to cover" } }, "type": "CheckboxesField", @@ -338,9 +338,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter location", - "any.only": "Enter location", - "string.empty": "Enter location" + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" } }, "type": "SelectField", @@ -352,9 +352,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter an email address", - "any.only": "Enter an email address", - "string.empty": "Enter an email address", + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, @@ -417,9 +417,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter an email address", - "any.only": "Enter an email address", - "string.empty": "Enter an email address", + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, @@ -441,9 +441,9 @@ "name": "GjKMBs", "options": { "customValidationMessages": { - "any.required": "Enter location", - "any.only": "Enter location", - "string.empty": "Enter location" + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" } }, "type": "SelectField", @@ -494,9 +494,9 @@ "options": { "required": true, "customValidationMessages": { - "any.required": "Enter an email address", - "any.only": "Enter an email address", - "string.empty": "Enter an email address", + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", "string.pattern.base": "Enter an email address in the correct format, like name@example.com" } }, From 7ff062d85247264d714806d8b83297addee013c9 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 2 Sep 2025 16:15:20 +0100 Subject: [PATCH 382/403] Update close-contact-feedback.json --- .../server/forms/close-contact-feedback.json | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/runner/src/server/forms/close-contact-feedback.json b/runner/src/server/forms/close-contact-feedback.json index f70d13275e..3e55c1a9e4 100644 --- a/runner/src/server/forms/close-contact-feedback.json +++ b/runner/src/server/forms/close-contact-feedback.json @@ -5,12 +5,14 @@ { "title": "Give feedback on Surge Response Service", "path": "/feedback", - "continueButtonText": "Send feedback", - "showContinueButton": true, "components": [ { "name": "czEhuv", - "options": {}, + "options": { + "customValidationMessages": { + "any.required": "Select how you feel about this service" + } + }, "type": "RadiosField", "title": "Overall, how do you feel about this service?", "list": "bJAhcr", @@ -18,7 +20,12 @@ }, { "name": "JDcVLN", - "options": {}, + "options": { + "customValidationMessages": { + "string.empty": "Enter details about how we could improve this service", + "string.pattern.base": "Enter details about how we could improve this service" + } + }, "type": "MultilineTextField", "title": "How could we improve this service?", "hint": "Do not include any personal or sensitive information.", @@ -110,5 +117,13 @@ }, "name": "Give feedback on Surge Response Service", "feedback": { "feedbackForm": true, "url": "" }, - "phaseBanner": {} + "phaseBanner": {}, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    Thank you for submitting feedback

    If you gave us your name and email, we will respond within 5 working days.

    Return to the homepage

    ", + "hidePanel": true + } + } + } } From e208595a2dba282033c084f4c7e953a6e40ab8aa Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 3 Sep 2025 15:55:14 +0100 Subject: [PATCH 383/403] Typo fix and section name change (latter to fix bug) --- .../server/forms/close-contact-form-hpt-nl1-dev.json | 10 +++++----- .../server/forms/close-contact-form-hpt-nl1-test.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl4.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl5.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl7.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl8.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-uat.json | 10 +++++----- .../src/server/forms/close-contact-form-nl1-dev.json | 10 +++++----- .../src/server/forms/close-contact-form-nl1-test.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl4.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl5.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl7.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl8.json | 10 +++++----- runner/src/server/forms/close-contact-form-uat.json | 10 +++++----- 14 files changed, 70 insertions(+), 70 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index e44308db6b..0af4b042cb 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 1c92e53c2f..129bde8af9 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index 8e6f7efa14..a8808b7179 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 7fd17ac5ae..2a7ce612df 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 2062ef3671..278d933422 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 6465236d2b..89c021ba9e 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index c958ca9463..aed46816ee 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1832,7 +1832,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3327,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3463,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3481,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index 2f31be37ef..446eb67cf0 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index b4af82d99a..b77356a3b7 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 033bd7d209..76f2f0c17e 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 5222afea84..cf8bd62ff7 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 5a85db7e83..01d5a6e74d 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index a4c85d7192..5cdf082e5b 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 28bd04df67..cdcdb46993 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1831,7 +1831,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3326,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3462,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3480,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, From 34b56ac9afd2eebcff43aab3ef8ff464bad8ead6 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 3 Sep 2025 15:57:04 +0100 Subject: [PATCH 384/403] Update index.ts --- .../src/server/transforms/summaryDetails/index.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index e6a21e4b16..08cfd59834 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -17,17 +17,7 @@ const closeContactParams = [ joiner: " ", }, { - names: ["phone_number", "email_address"], - to: "Contact details", - joiner: "\n", - }, - { - names: ["contact_first_name", "contact_last_name"], - to: "Full name", - joiner: " ", - }, - { - names: ["contact_phone_number", "contact_email"], + names: ["mobile_number", "landline_number", "email_address"], to: "Contact details", joiner: "\n", }, @@ -93,3 +83,4 @@ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { }; module.exports = summaryDetailsTransformations; + From e2c43ef19a444bfc1bdb2e853abd5e02dc50b90a Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 10 Sep 2025 04:34:18 +0100 Subject: [PATCH 385/403] Add files via upload --- .../forms/close-contact-form-hpt-nl1-dev.json | 21 ++++++++++++------- .../close-contact-form-hpt-nl1-test.json | 21 ++++++++++++------- .../forms/close-contact-form-hpt-nl4.json | 21 ++++++++++++------- .../forms/close-contact-form-hpt-nl5.json | 21 ++++++++++++------- .../forms/close-contact-form-hpt-nl7.json | 21 ++++++++++++------- .../forms/close-contact-form-hpt-nl8.json | 21 ++++++++++++------- .../forms/close-contact-form-hpt-uat.json | 21 ++++++++++++------- .../forms/close-contact-form-nl1-dev.json | 21 ++++++++++++------- .../forms/close-contact-form-nl1-test.json | 21 ++++++++++++------- .../server/forms/close-contact-form-nl4.json | 21 ++++++++++++------- .../server/forms/close-contact-form-nl5.json | 21 ++++++++++++------- .../server/forms/close-contact-form-nl7.json | 21 ++++++++++++------- .../server/forms/close-contact-form-nl8.json | 21 ++++++++++++------- .../server/forms/close-contact-form-uat.json | 21 ++++++++++++------- 14 files changed, 182 insertions(+), 112 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 0af4b042cb..fe37a403ba 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 129bde8af9..dfcd51cef4 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index a8808b7179..999095a461 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 2a7ce612df..cd02379446 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 278d933422..2186ccfee0 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 89c021ba9e..55bbd4862c 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index aed46816ee..a60d91a37a 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -190,9 +190,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1832,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3327,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3463,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3481,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index 446eb67cf0..c1305b8b4a 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index b77356a3b7..9d7327c2c5 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 76f2f0c17e..1997a8fded 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index cf8bd62ff7..e8c07abfd2 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 01d5a6e74d..c60f654468 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 5cdf082e5b..e74c85ed42 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index cdcdb46993..d1bffbc01f 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that need it.", + "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", "schema": {} }, { @@ -189,9 +189,14 @@ }, { "name": "email_address", - "type": "EmailAddressField", - "title": "Email address", - "hint": "For example, sarah.philips@example.com" + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + } } ], "next": [{ "path": "/check-your-details" }], @@ -1831,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherContacts" + "section": "OtherCloseContacts" }, { "path": "/close-contact-1", @@ -3326,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherContacts", + "name": "OtherCloseContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3462,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3480,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherContacts.been_in_contact", + "name": "OtherCloseContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, From 8383ece237784c047fcbba5719f3609374e64484 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Wed, 10 Sep 2025 04:37:18 +0100 Subject: [PATCH 386/403] Add files via upload --- .../server/forms/close-contact-form-hpt-nl1-dev.json | 10 +++++----- .../server/forms/close-contact-form-hpt-nl1-test.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl4.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl5.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl7.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-nl8.json | 10 +++++----- .../src/server/forms/close-contact-form-hpt-uat.json | 10 +++++----- .../src/server/forms/close-contact-form-nl1-dev.json | 10 +++++----- .../src/server/forms/close-contact-form-nl1-test.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl4.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl5.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl7.json | 10 +++++----- runner/src/server/forms/close-contact-form-nl8.json | 10 +++++----- runner/src/server/forms/close-contact-form-uat.json | 10 +++++----- 14 files changed, 70 insertions(+), 70 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index fe37a403ba..22cf69c315 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index dfcd51cef4..1c9537c714 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index 999095a461..aa551c5185 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index cd02379446..4d65429d1c 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 2186ccfee0..7957d8ff6c 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 55bbd4862c..74b9a63b22 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index a60d91a37a..cc63980039 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1837,7 +1837,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3332,7 +3332,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3468,7 +3468,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3486,7 +3486,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index c1305b8b4a..2b03047dd3 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index 9d7327c2c5..fe58035288 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 1997a8fded..2dc386eaf5 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index e8c07abfd2..22b7314a6c 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index c60f654468..7b365dac38 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index e74c85ed42..327e153391 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index d1bffbc01f..d908033700 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -17,7 +17,7 @@ "name": "para2", "options": {}, "type": "Para", - "content": "This is so we can provide the right advice and guidance to those that ngiteed it.", + "content": "This is so we can provide the right advice and guidance to those that need it.", "schema": {} }, { @@ -1836,7 +1836,7 @@ { "path": "/close-contact-1", "condition": "IfCloseContacts" }, { "path": "/summary", "condition": "IfNoCloseContacts" } ], - "section": "OtherCloseContacts" + "section": "OtherContacts" }, { "path": "/close-contact-1", @@ -3331,7 +3331,7 @@ "hideTitle": true }, { - "name": "OtherCloseContacts", + "name": "OtherContacts", "title": "Other close contacts in the last 7 days", "hideTitle": true }, @@ -3467,7 +3467,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, @@ -3485,7 +3485,7 @@ "conditions": [ { "field": { - "name": "OtherCloseContacts.been_in_contact", + "name": "OtherContacts.been_in_contact", "type": "YesNoField", "display": "Have you been in close contact with other people in the last 7 days?" }, From adaf0b12db02e941a771c340ea3c9be963e1672d Mon Sep 17 00:00:00 2001 From: kitttang Date: Tue, 9 Sep 2025 13:24:54 +0100 Subject: [PATCH 387/403] patch: kls form changes for dac --- runner/src/server/forms/kls-enquiries.json | 36 +++++++++---------- .../server/forms/kls-training-request.json | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index cd5647af3c..db4df528eb 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -168,7 +168,7 @@ "options": {}, "type": "Details", "title": "Click here to learn about the types of enquiry that the KLS team support", - "content": "Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.\n

    \n\nSystematic review: the provision of complex literature searches to help in the production of a systematic review, with associated guidance on the stages of conducting a review. The time taken to deliver the search and advice will be dependent on the type of review.\n

    \n\nEvidence briefing: outlines the main messages taken from evidence that has been identified and selected using systematic methods and strict inclusion criteria. It usually takes at least 3 weeks to produce an Evidence Briefing and they are subject to certain eligibility criteria\n

    \n\nCurrent awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.\n

    \n\nGeneral enquiry: select this option for support with any other queries.", + "content": "
    Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.

    Systematic review: the provision of complex literature searches to help in the production of a systematic review, with associated guidance on the stages of conducting a review. The time taken to deliver the search and advice will be dependent on the type of review.

    Evidence briefing: outlines the main messages taken from evidence that has been identified and selected using systematic methods and strict inclusion criteria. It usually takes at least 3 weeks to produce an Evidence Briefing and they are subject to certain eligibility criteria

    Current awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.

    General enquiry: select this option for support with any other queries.
    ", "schema": {} }, { @@ -192,7 +192,7 @@ ], "next": [ { - "path": "/about-your-current-awareness-alerts-query", + "path": "/current-awareness", "condition": "OchNDo" }, { @@ -259,7 +259,7 @@ ] }, { - "path": "/about-your-current-awareness-alerts-query", + "path": "/current-awareness", "title": "About your current awareness alerts query", "components": [ { @@ -287,7 +287,7 @@ "required": false }, "type": "MultilineTextField", - "title": "If you selected 'other' above, please describe the topic of your requested current awareness alert", + "title": "If you selected 'Other', describe the topic on which you wish to be alerted", "hint": "Any new alert request will be considered on a case-by-case basis. A member of the KLS team will be in touch to discuss the best option to meet your requirements." } ], @@ -372,7 +372,7 @@ "required": false }, "type": "TextField", - "title": "If you selected 'other' above, please give details", + "title": "If you selected ‘Other’, indicate the specific desired publication date range", "schema": {} }, { @@ -394,7 +394,7 @@ "required": false }, "type": "TextField", - "title": "If you selected ‘other’ above, please give details", + "title": "If you selected ‘Other’, provide further details of the desired geographical scope", "schema": {} }, { @@ -486,7 +486,7 @@ "required": false }, "type": "MultilineTextField", - "title": "If you selected 'other' above, please give details", + "title": "If you selected ‘Other’, provide further details on the primary use of the search results", "schema": {} }, { @@ -517,7 +517,7 @@ }, "type": "DatePartsField", "title": "Desired completion date", - "hint": "For example, 20 01 2025. The completion time will be at least 1-2 working weeks depending on your chosen search type", + "hint": "The completion time will be at least 1-2 working weeks depending on your chosen search type. Please provide a future date.", "schema": {} } ], @@ -563,7 +563,7 @@ "required": false }, "type": "MultilineTextField", - "title": "If you selected 'other' above, please give details", + "title": "If you selected ‘Other’, provide further details on the type of review you are doing", "schema": {} }, { @@ -590,7 +590,7 @@ "required": false }, "type": "MultilineTextField", - "title": "If you selected 'other' above, please give details", + "title": "If you selected ‘Other’, explain the reason for conducting this review", "schema": {} }, { @@ -617,7 +617,7 @@ "required": false }, "type": "MultilineTextField", - "title": "If you answered 'other', please give details", + "title": "If you selected ‘Other’, provide further details on where you intend to publish your review", "schema": {} }, { @@ -650,7 +650,7 @@ }, "type": "DatePartsField", "title": "Desired completion date", - "hint": "For example, 20 01 2025. Timeframe for completion will vary based on the review’s complexity, and will be discussed on a case-by-case basis.", + "hint": "Timeframe for completion will vary based on the review's complexity, and will be discussed on a case-by-case basis. Please provide a future date.", "schema": {} } ], @@ -691,7 +691,7 @@ "required": false }, "type": "TextField", - "title": "If you answered 'Other' above, please give details", + "title": "If you selected ‘Other’, explain why this evidence briefing request is essential for your work", "schema": {} }, { @@ -771,7 +771,7 @@ }, "type": "DatePartsField", "title": "Desired completion date", - "hint": "For example, 20 01 2025. Standard time to produce an Evidence Briefing is at least 3 working weeks", + "hint": "Standard time to produce an Evidence Briefing is at least 3 working weeks. Please provide a future date.", "schema": {} } ], @@ -880,7 +880,7 @@ "options": {}, "type": "Details", "title": "Click here to learn about the types of enquiry that the KLS team support", - "content": "Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.\n

    \n\nCurrent awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.\n

    \n\nGeneral enquiry: select this option for support with any other queries.", + "content": "
    Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.

    Current awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.

    General enquiry: select this option for support with any other queries.
    ", "schema": {} }, { @@ -907,7 +907,7 @@ "condition": "lsHzLP" }, { - "path": "/about-your-current-awareness-alerts-query", + "path": "/current-awareness", "condition": "MQeZyE" }, { @@ -972,7 +972,7 @@ "required": false }, "type": "TextField", - "title": "If you selected 'other' above, please give details", + "title": "If you selected ‘Other’, indicate the specific desired publication date range", "schema": {} }, { @@ -994,7 +994,7 @@ "required": false }, "type": "TextField", - "title": "If you selected ‘other’ above, please give details", + "title": "If you selected ‘Other’, provide further details of the desired geographical scope", "schema": {} }, { diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index 7af3580096..b5f954043e 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -224,7 +224,7 @@ "required": false }, "type": "TextField", - "title": "If Other, please specify." + "title": "If you selected ‘Other’, provide further details on the topic you would like to cover" }, { "name": "gpIAot", From b66733e694ca9b4ded35fe6653ffe29cdbf6b478 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 11 Sep 2025 09:58:57 +0100 Subject: [PATCH 388/403] Add files via upload --- runner/src/server/forms/close-contact-form-hpt-nl1-dev.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl1-test.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl4.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl5.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl7.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-nl8.json | 5 ++++- runner/src/server/forms/close-contact-form-hpt-uat.json | 5 ++++- runner/src/server/forms/close-contact-form-nl1-dev.json | 5 ++++- runner/src/server/forms/close-contact-form-nl1-test.json | 5 ++++- runner/src/server/forms/close-contact-form-nl4.json | 5 ++++- runner/src/server/forms/close-contact-form-nl5.json | 5 ++++- runner/src/server/forms/close-contact-form-nl7.json | 5 ++++- runner/src/server/forms/close-contact-form-nl8.json | 5 ++++- runner/src/server/forms/close-contact-form-uat.json | 5 ++++- 14 files changed, 56 insertions(+), 14 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 22cf69c315..f9a52738af 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 1c9537c714..52ddfc64e3 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index aa551c5185..a061e74795 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 4d65429d1c..71d14c801b 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 7957d8ff6c..1cb8e0382d 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 74b9a63b22..ea41c04a84 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index cc63980039..08e0533621 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -197,7 +197,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index 2b03047dd3..d6c1a8c6e8 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index fe58035288..4bb35f1b23 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 2dc386eaf5..7a3f8690bb 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index 22b7314a6c..f2525f869f 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 7b365dac38..35216d40ac 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 327e153391..32d6c9a8af 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index d908033700..08160fd3e3 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -196,7 +196,10 @@ "string.empty": "Enter a valid email address", "string.pattern.base": "Enter a valid email address" } - } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" } ], "next": [{ "path": "/check-your-details" }], From 4e7d2a0b1aaf86b3e5f9772dac48d0d5eab8f2c0 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Thu, 11 Sep 2025 10:38:47 +0100 Subject: [PATCH 389/403] Update close-contact-feedback.json --- runner/src/server/forms/close-contact-feedback.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/close-contact-feedback.json b/runner/src/server/forms/close-contact-feedback.json index 3e55c1a9e4..932a27df05 100644 --- a/runner/src/server/forms/close-contact-feedback.json +++ b/runner/src/server/forms/close-contact-feedback.json @@ -102,8 +102,8 @@ "title": "Close contact FeedbackForm", "type": "email", "outputConfiguration": { - "apiKey": "chemphill-74015135-6bdb-40ea-bea1-6c538f593925-9e2ac643-bc90-4552-b856-cd3ecac99ce7", - "emailAddress": "calum.hemphill@ukhsa.gov.uk", + "apiKey": "${closeContactFeedbackAPI}", + "emailAddress": "${closeContactFeedbackEmail}", "notifyTemplateId": "2218d301-9005-472c-8116-cb5e533a8bf1" } } From d9a34d4f7f107c1ea27b39cc0e803dc6ec3be32b Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 12 Sep 2025 11:10:14 +0100 Subject: [PATCH 390/403] Add files via upload --- runner/src/server/forms/close-contact-form-hpt-nl1-dev.json | 4 ++-- runner/src/server/forms/close-contact-form-hpt-nl1-test.json | 4 ++-- runner/src/server/forms/close-contact-form-hpt-nl4.json | 4 ++-- runner/src/server/forms/close-contact-form-hpt-nl5.json | 4 ++-- runner/src/server/forms/close-contact-form-hpt-nl7.json | 4 ++-- runner/src/server/forms/close-contact-form-hpt-nl8.json | 4 ++-- runner/src/server/forms/close-contact-form-hpt-uat.json | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index f9a52738af..1d5bd09224 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 52ddfc64e3..4a695480bd 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index a061e74795..adff511091 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index 71d14c801b..da7f9277ac 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 1cb8e0382d..1c135d084d 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index ea41c04a84..0c9f04dd20 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index 08e0533621..f09b3ddb89 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -92,7 +92,7 @@ "schema": {} } ], - "next": [{ "path": "/completing-form-for" }], + "next": [{ "path": "/case-id" }], "controller": "./pages/start.js" }, { @@ -107,7 +107,7 @@ "schema": {} } ], - "next": [{ "path": "/personal-details" }], + "next": [{ "path": "/completing-form-for" }], "section": "CaseID" }, { From 2c154e92c91f51ef46b857f78cacc70ec910a842 Mon Sep 17 00:00:00 2001 From: kitttang Date: Fri, 12 Sep 2025 09:33:17 +0100 Subject: [PATCH 391/403] patch: form iterations 5 --- runner/src/server/forms/kls-enquiries.json | 10 +++++++++- runner/src/server/forms/kls-training-request.json | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index db4df528eb..b0b0d47ac7 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -22,7 +22,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry. You can do this by closing your browser and reopening it to access this enquiry form.

    " + "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry.

    " } ], "next": [ @@ -2515,6 +2515,14 @@ } } ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": false, + "nextSteps": "You will receive an email to confirm that your enquiry has been received. You may need to check your mailbox’s junk folder to retrieve the email." + } + } + }, "fees": [], "outputs": [ { diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index b5f954043e..2af36bea12 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -949,6 +949,14 @@ } } ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": false, + "nextSteps": "You will receive an email to confirm that your enquiry has been received. You may need to check your mailbox’s junk folder to retrieve the email." + } + } + }, "fees": [], "outputs": [ { From 7cb953469e235f996cc80cbc7d7c065a0dfa9cfc Mon Sep 17 00:00:00 2001 From: Sully Date: Mon, 15 Sep 2025 14:18:27 +0100 Subject: [PATCH 392/403] fix: unset tokens when application complete --- .../server/plugins/applicationStatus/index.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/runner/src/server/plugins/applicationStatus/index.ts b/runner/src/server/plugins/applicationStatus/index.ts index fb8e232f18..f5d28f67a1 100644 --- a/runner/src/server/plugins/applicationStatus/index.ts +++ b/runner/src/server/plugins/applicationStatus/index.ts @@ -78,6 +78,22 @@ const index = { }); await cacheService.clearState(request); + h.unstate("magicLinkRetry", { + path: "/", + isSecure: true, + isHttpOnly: true, + encoding: "base64json", + strictHeader: true, + }); + + h.unstate("auth_token", { + path: "/", + isSecure: true, + isHttpOnly: true, + encoding: "none", + isSameSite: "Lax", + }); + return h.view("confirmation", viewModel); }, }, From 5ce25be6025287f00def2e619609de7063e0687f Mon Sep 17 00:00:00 2001 From: kitttang Date: Wed, 17 Sep 2025 12:16:27 +0100 Subject: [PATCH 393/403] Update kls-training-request.json --- runner/src/server/forms/kls-training-request.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json index 2af36bea12..a0b9779039 100644 --- a/runner/src/server/forms/kls-training-request.json +++ b/runner/src/server/forms/kls-training-request.json @@ -20,7 +20,7 @@ "name": "mainContent", "options": {}, "type": "Para", - "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry. You can do this by closing your browser and reopening it to access this enquiry form.

    " + "content": "

    If you have recently submitted an enquiry using this form, please ensure you clear your cookies before starting a new enquiry.

    " } ], "next": [ @@ -981,4 +981,4 @@ "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" }, "jwtKey": "${KLSTrainingJwtKey}" -} \ No newline at end of file +} From d2851d4a37857d4f3de56f1702ee04dedb129b09 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 19 Sep 2025 13:06:06 +0100 Subject: [PATCH 394/403] Add files via upload --- .../forms/close-contact-form-cca-nl1-dev.json | 4198 +++++++++++++++++ .../close-contact-form-cca-nl1-test.json | 4198 +++++++++++++++++ .../forms/close-contact-form-cca-nl4.json | 4198 +++++++++++++++++ .../forms/close-contact-form-cca-nl5.json | 4198 +++++++++++++++++ .../forms/close-contact-form-cca-nl7.json | 4198 +++++++++++++++++ .../forms/close-contact-form-cca-nl8.json | 4198 +++++++++++++++++ .../forms/close-contact-form-cca-uat.json | 4198 +++++++++++++++++ .../forms/close-contact-form-hpt-nl1-dev.json | 93 +- .../close-contact-form-hpt-nl1-test.json | 93 +- .../forms/close-contact-form-hpt-nl4.json | 93 +- .../forms/close-contact-form-hpt-nl5.json | 93 +- .../forms/close-contact-form-hpt-nl7.json | 93 +- .../forms/close-contact-form-hpt-nl8.json | 93 +- .../forms/close-contact-form-hpt-uat.json | 93 +- .../forms/close-contact-form-nl1-dev.json | 93 +- .../forms/close-contact-form-nl1-test.json | 93 +- .../server/forms/close-contact-form-nl4.json | 93 +- .../server/forms/close-contact-form-nl5.json | 93 +- .../server/forms/close-contact-form-nl7.json | 93 +- .../server/forms/close-contact-form-nl8.json | 93 +- .../server/forms/close-contact-form-uat.json | 93 +- 21 files changed, 30142 insertions(+), 546 deletions(-) create mode 100644 runner/src/server/forms/close-contact-form-cca-nl1-dev.json create mode 100644 runner/src/server/forms/close-contact-form-cca-nl1-test.json create mode 100644 runner/src/server/forms/close-contact-form-cca-nl4.json create mode 100644 runner/src/server/forms/close-contact-form-cca-nl5.json create mode 100644 runner/src/server/forms/close-contact-form-cca-nl7.json create mode 100644 runner/src/server/forms/close-contact-form-cca-nl8.json create mode 100644 runner/src/server/forms/close-contact-form-cca-uat.json diff --git a/runner/src/server/forms/close-contact-form-cca-nl1-dev.json b/runner/src/server/forms/close-contact-form-cca-nl1-dev.json new file mode 100644 index 0000000000..656d93541d --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl1-dev.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl1-test.json b/runner/src/server/forms/close-contact-form-cca-nl1-test.json new file mode 100644 index 0000000000..9c896c81e3 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl1-test.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl4.json b/runner/src/server/forms/close-contact-form-cca-nl4.json new file mode 100644 index 0000000000..7a703bf5bc --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl4.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl4.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl5.json b/runner/src/server/forms/close-contact-form-cca-nl5.json new file mode 100644 index 0000000000..e2bf2239af --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl5.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl7.json b/runner/src/server/forms/close-contact-form-cca-nl7.json new file mode 100644 index 0000000000..493e241f74 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl7.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl7.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl8.json b/runner/src/server/forms/close-contact-form-cca-nl8.json new file mode 100644 index 0000000000..994d940db7 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl8.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl8.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-uat.json b/runner/src/server/forms/close-contact-form-cca-uat.json new file mode 100644 index 0000000000..de0ac412b4 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-uat.json @@ -0,0 +1,4198 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-visually-hidden", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Your first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Your last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Their first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Their last (family) name" + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-their-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [{ "path": "/do-you-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-their-details", + "components": [], + "next": [{ "path": "/do-they-live-with-other-people" }], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "First (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 7 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 7 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": {}, + "type": "TextField", + "title": "Close contact first (given) name" + }, + { + "name": "last_name", + "options": {}, + "type": "TextField", + "title": "Close contact last (family) name" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 18 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 7 days", + "value": "the name and contact details of other people they were in close contact with in the last 7 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 7 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 7 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl3.uat.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 1d5bd09224..720455a42f 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index 4a695480bd..b12c073eb9 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index adff511091..baee34b58d 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index da7f9277ac..fa561bc770 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 1c135d084d..1582034745 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 0c9f04dd20..458a188f38 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index f09b3ddb89..8917a23209 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -220,13 +220,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -371,7 +371,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -398,7 +398,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -418,7 +418,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -438,7 +438,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -578,7 +578,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -718,7 +718,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -858,7 +858,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -998,7 +998,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1138,7 +1138,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1278,7 +1278,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1418,7 +1418,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1558,7 +1558,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1698,7 +1698,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1833,7 +1833,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1862,13 +1862,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1999,13 +1999,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2136,13 +2136,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2273,13 +2273,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2410,13 +2410,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2547,13 +2547,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2684,13 +2684,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2821,13 +2821,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2958,13 +2958,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3095,13 +3095,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3235,8 +3235,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index d6c1a8c6e8..385a8e629a 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index 4bb35f1b23..a0fe7b45db 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 7a3f8690bb..49017498a0 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index f2525f869f..f0884f00cd 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index 35216d40ac..ad0a614280 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index 32d6c9a8af..ebb1f25f17 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 08160fd3e3..408be87638 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -53,7 +53,7 @@ "name": "QlWuFo", "options": {}, "type": "Para", - "content": "It should take about 10 minutes to complete.", + "content": "This form should take about 10 minutes to complete.", "schema": {} }, { @@ -219,13 +219,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Their first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Their last (family) name" }, { "name": "VnYxYja", @@ -370,7 +370,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -397,7 +397,7 @@ "options": {}, "type": "List", "title": "This includes:", - "list": "BfWivE", + "list": "BfWivF", "values": { "type": "listRef" } }, { @@ -417,7 +417,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people they live with who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -437,7 +437,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -577,7 +577,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -717,7 +717,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -857,7 +857,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -997,7 +997,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1137,7 +1137,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1277,7 +1277,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1417,7 +1417,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1557,7 +1557,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1697,7 +1697,7 @@ "name": "iulooA", "options": {}, "type": "Para", - "content": "You can add more than one person. You will be asked if you want to add another after you continue." + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." }, { "name": "CIzhtn", @@ -1832,7 +1832,7 @@ "options": {}, "type": "Details", "title": "Why are we asking for this information?", - "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to protect themselves and others." + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." } ], "next": [ @@ -1861,13 +1861,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -1998,13 +1998,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2135,13 +2135,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2272,13 +2272,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2409,13 +2409,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2546,13 +2546,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2683,13 +2683,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2820,13 +2820,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -2957,13 +2957,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3094,13 +3094,13 @@ "name": "first_name", "options": {}, "type": "TextField", - "title": "First (given) name" + "title": "Close contact first (given) name" }, { "name": "last_name", "options": {}, "type": "TextField", - "title": "Last (family) name" + "title": "Close contact last (family) name" }, { "name": "mWvTOY", @@ -3234,8 +3234,23 @@ "type": "string", "items": [ { - "text": "people who live at the same address", - "value": "people who live at the same address" + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" }, { "text": "people who have stayed overnight in the last 7 days", From 7683a31e7694654de304d8fb17092c548ceb30d6 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Fri, 19 Sep 2025 13:08:04 +0100 Subject: [PATCH 395/403] Update index.ts --- .../server/transforms/summaryDetails/index.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 08cfd59834..079a77d820 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -52,6 +52,34 @@ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, + "close-contact-form-cca-nl1-dev": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl1-test": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl4": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl5": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl7": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl8": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-uat": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, "close-contact-form-hpt-nl1-dev": (details) => { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); @@ -84,3 +112,4 @@ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { module.exports = summaryDetailsTransformations; + From c6003c9e6cd987d8b5de39e8db4daf8a88a7f552 Mon Sep 17 00:00:00 2001 From: Sam Aki Date: Tue, 23 Sep 2025 09:24:56 +0100 Subject: [PATCH 396/403] RITM0182451 - enable yorkshire & humber region in report an outbreak frontend --- runner/config/default.js | 10 +- runner/src/server/forms/ReportAnOutbreak.json | 14 +++ yarn.lock | 98 +++++++++++++++++-- 3 files changed, 110 insertions(+), 12 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index cb8e271ca2..f33b6bf4a2 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -69,11 +69,11 @@ module.exports = { confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. httpsCookieSecureAttribute: true, // Assumed usage of HTTPS. Set to false if you are using HTTP. - sessionCookiePassword: "${SessionCookies.Password}", - redisHost: "${Redis.Host}", - redisPort: 6379, - redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - redisTls: true, //run in TLS mode + // sessionCookiePassword: "${SessionCookies.Password}", + // redisHost: "${Redis.Host}", + // redisPort: 6379, + // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + // redisTls: true, //run in TLS mode /** * SSL diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 174b3a746b..dc1911c8c5 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3657,6 +3657,20 @@ "value": "South West HPT", "display": "South West" } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Yorkshire and the Humber", + "display": "Yorkshire and the Humber" + } } ] } diff --git a/yarn.lock b/yarn.lock index a6853cf61b..7a92bb09cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3667,15 +3667,27 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:^6.1.0": - version: 6.1.0 - resolution: "@prisma/client@npm:6.1.0" +"@prisma/client@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/client@npm:6.12.0" peerDependencies: prisma: "*" + typescript: ">=5.1.0" peerDependenciesMeta: prisma: optional: true - checksum: 1b7e5797ea29f5bdb1c4419894cd3853ef8d3fc35bdc2a296c08a1fa695c50b413bc9f3c495c878198145f0ebe04ae18bb0d2265cba08b2fa982c372f99fcc63 + typescript: + optional: true + checksum: 3d6d9354b57872b58b97c01e3e90d1359d9dc47fd081f0db8ce81af0b3a1f5277678424c5a5a2f6a801ec0c87db3612da1e8be18913ee62ec54e6b4428eb6c96 + languageName: node + linkType: hard + +"@prisma/config@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/config@npm:6.12.0" + dependencies: + jiti: 2.4.2 + checksum: b06b8fb9f8f07e44dcba250e059551d0439c82b5c2957385d5132e9040e7e40e5bc7bc3620cc671092b880552ad6f7247ae76d8288851ab06c8d01bfba6c7dfc languageName: node linkType: hard @@ -3686,6 +3698,13 @@ __metadata: languageName: node linkType: hard +"@prisma/debug@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/debug@npm:6.12.0" + checksum: eebf9aed967964f8187cc7b3df0205e25f99a2874163b09031a7283748f038d841a076809b1c593a01dc198d1736f562f11b06e66be01edbf1642a3a2f357174 + languageName: node + linkType: hard + "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959": version: 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 resolution: "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959" @@ -3693,6 +3712,13 @@ __metadata: languageName: node linkType: hard +"@prisma/engines-version@npm:6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc": + version: 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + resolution: "@prisma/engines-version@npm:6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc" + checksum: 108e213a2cc3f85cf11c74c8b17f16f89b36cfc1a2146f918c935da0b9f9f3b0b1c59cdb4edf30c81767182ab9de5730330105af25d8b9cb6eacf400be4f7dfd + languageName: node + linkType: hard + "@prisma/engines@npm:6.1.0": version: 6.1.0 resolution: "@prisma/engines@npm:6.1.0" @@ -3705,6 +3731,18 @@ __metadata: languageName: node linkType: hard +"@prisma/engines@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/engines@npm:6.12.0" + dependencies: + "@prisma/debug": 6.12.0 + "@prisma/engines-version": 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + "@prisma/fetch-engine": 6.12.0 + "@prisma/get-platform": 6.12.0 + checksum: ab52544ce07ca375f4dbda448952a9ae7a920f9aa0385a7a02a082a12392c20fa2a0e450951dd4255a9918ec92ef4acc87290993c3bb9fa2cd55c4600b6c8919 + languageName: node + linkType: hard + "@prisma/fetch-engine@npm:6.1.0": version: 6.1.0 resolution: "@prisma/fetch-engine@npm:6.1.0" @@ -3716,6 +3754,17 @@ __metadata: languageName: node linkType: hard +"@prisma/fetch-engine@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/fetch-engine@npm:6.12.0" + dependencies: + "@prisma/debug": 6.12.0 + "@prisma/engines-version": 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + "@prisma/get-platform": 6.12.0 + checksum: 16ebe12e4d9ae03defcc08fee43cc8f4cd29edf57032df1c88070576fb23dd99de3dbc10a6dea702c8e5ff24e57e99efc050a7c65821b1c1a4575eac64a19540 + languageName: node + linkType: hard + "@prisma/get-platform@npm:6.1.0": version: 6.1.0 resolution: "@prisma/get-platform@npm:6.1.0" @@ -3725,6 +3774,15 @@ __metadata: languageName: node linkType: hard +"@prisma/get-platform@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/get-platform@npm:6.12.0" + dependencies: + "@prisma/debug": 6.12.0 + checksum: 64a9594088eb840fa10f3e42e3ef6428a136cb5736cb133824ce220216b5179352254e37e296568bf2afaa0db3eb8a600f120d9e91e08a1b18fb515474140112 + languageName: node + linkType: hard + "@sideway/address@npm:^4.1.3": version: 4.1.4 resolution: "@sideway/address@npm:4.1.4" @@ -5081,13 +5139,13 @@ __metadata: "@babel/eslint-plugin": ^7.22.10 "@babel/preset-env": ^7.23.3 "@babel/preset-typescript": ^7.23.3 - "@prisma/client": ^6.1.0 + "@prisma/client": 6.12.0 "@types/node": ^20.4.6 babel-eslint: ^10.1.0 eslint: ^8.10.0 eslint-plugin-import: ^2.25.4 eslint-plugin-tsdoc: ^0.2.14 - prisma: ^6.1.0 + prisma: 6.12.0 typescript: 4.9.5 languageName: unknown linkType: soft @@ -5176,7 +5234,7 @@ __metadata: nunjucks: ^3.2.3 pg-boss: ^10.1.3 pino: 8.15.1 - prisma: ^6.1.0 + prisma: 6.12.0 resolve: ^1.19.0 sass: ^1.49.9 schmervice: ^1.6.0 @@ -14188,6 +14246,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:2.4.2": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" + bin: + jiti: lib/jiti-cli.mjs + checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e + languageName: node + linkType: hard + "jju@npm:~1.4.0": version: 1.4.0 resolution: "jju@npm:1.4.0" @@ -17440,6 +17507,23 @@ __metadata: languageName: node linkType: hard +"prisma@npm:6.12.0": + version: 6.12.0 + resolution: "prisma@npm:6.12.0" + dependencies: + "@prisma/config": 6.12.0 + "@prisma/engines": 6.12.0 + peerDependencies: + typescript: ">=5.1.0" + peerDependenciesMeta: + typescript: + optional: true + bin: + prisma: build/index.js + checksum: a8f18bfe55514048ceb2263467472032a0d0b8f2ac95510bc493c903efa57cf06dfa32bf5fdd16da360e11e86e207f1e24b258215a01efbcace4c45b39dd958c + languageName: node + linkType: hard + "prisma@npm:^6.1.0": version: 6.1.0 resolution: "prisma@npm:6.1.0" From 5a066377eb430011d767a6b0d77c9f680960d945 Mon Sep 17 00:00:00 2001 From: Sam Aki Date: Tue, 23 Sep 2025 10:12:26 +0100 Subject: [PATCH 397/403] RITM0182451 - add HPT to yorkshire and humber value --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index dc1911c8c5..7a7129203d 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3668,7 +3668,7 @@ "operator": "is", "value": { "type": "Value", - "value": "Yorkshire and the Humber", + "value": "Yorkshire and the Humber HPT", "display": "Yorkshire and the Humber" } } From ab65665e29370d89e42354e45129fd01da2fd57c Mon Sep 17 00:00:00 2001 From: Sam Aki Date: Tue, 23 Sep 2025 10:47:51 +0100 Subject: [PATCH 398/403] RITM0182451 - put commented out redis config back in default.js --- runner/config/default.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/runner/config/default.js b/runner/config/default.js index f33b6bf4a2..cb8e271ca2 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -69,11 +69,11 @@ module.exports = { confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. httpsCookieSecureAttribute: true, // Assumed usage of HTTPS. Set to false if you are using HTTP. - // sessionCookiePassword: "${SessionCookies.Password}", - // redisHost: "${Redis.Host}", - // redisPort: 6379, - // redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET - // redisTls: true, //run in TLS mode + sessionCookiePassword: "${SessionCookies.Password}", + redisHost: "${Redis.Host}", + redisPort: 6379, + redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + redisTls: true, //run in TLS mode /** * SSL From 6c8aa50399e662137f499e3ff4fa3203a378e57e Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 23 Sep 2025 13:13:32 +0100 Subject: [PATCH 399/403] Add files via upload --- .../server/forms/close-contact-form-cca-nl1-dev.json | 11 +++++++++-- .../server/forms/close-contact-form-cca-nl1-test.json | 11 +++++++++-- .../src/server/forms/close-contact-form-cca-nl4.json | 11 +++++++++-- .../src/server/forms/close-contact-form-cca-nl5.json | 11 +++++++++-- .../src/server/forms/close-contact-form-cca-nl7.json | 11 +++++++++-- .../src/server/forms/close-contact-form-cca-nl8.json | 11 +++++++++-- .../src/server/forms/close-contact-form-cca-uat.json | 11 +++++++++-- 7 files changed, 63 insertions(+), 14 deletions(-) diff --git a/runner/src/server/forms/close-contact-form-cca-nl1-dev.json b/runner/src/server/forms/close-contact-form-cca-nl1-dev.json index 656d93541d..e78450b630 100644 --- a/runner/src/server/forms/close-contact-form-cca-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-cca-nl1-dev.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-cca-nl1-test.json b/runner/src/server/forms/close-contact-form-cca-nl1-test.json index 9c896c81e3..d7a266e985 100644 --- a/runner/src/server/forms/close-contact-form-cca-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-cca-nl1-test.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-cca-nl4.json b/runner/src/server/forms/close-contact-form-cca-nl4.json index 7a703bf5bc..b7b13b5d63 100644 --- a/runner/src/server/forms/close-contact-form-cca-nl4.json +++ b/runner/src/server/forms/close-contact-form-cca-nl4.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-cca-nl5.json b/runner/src/server/forms/close-contact-form-cca-nl5.json index e2bf2239af..bf61fb82d2 100644 --- a/runner/src/server/forms/close-contact-form-cca-nl5.json +++ b/runner/src/server/forms/close-contact-form-cca-nl5.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-cca-nl7.json b/runner/src/server/forms/close-contact-form-cca-nl7.json index 493e241f74..10f898ffa1 100644 --- a/runner/src/server/forms/close-contact-form-cca-nl7.json +++ b/runner/src/server/forms/close-contact-form-cca-nl7.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-cca-nl8.json b/runner/src/server/forms/close-contact-form-cca-nl8.json index 994d940db7..28e9398aab 100644 --- a/runner/src/server/forms/close-contact-form-cca-nl8.json +++ b/runner/src/server/forms/close-contact-form-cca-nl8.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-cca-uat.json b/runner/src/server/forms/close-contact-form-cca-uat.json index de0ac412b4..41eb91b264 100644 --- a/runner/src/server/forms/close-contact-form-cca-uat.json +++ b/runner/src/server/forms/close-contact-form-cca-uat.json @@ -172,10 +172,11 @@ "name": "VnYxYi", "options": {}, "type": "Html", - "content": "

    Provide at least one contact detail

    " + "content": "

    Provide at least one contact detail

    " }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -185,7 +186,7 @@ }, { "name": "landline_number", - "options": { "required": false }, + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Landline number", "hint": "For example, 020 7123 4567", @@ -206,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], From 61395a94cf82156cd78fc213e9b5e192c18edd53 Mon Sep 17 00:00:00 2001 From: calum-ukhsa Date: Tue, 23 Sep 2025 13:44:23 +0100 Subject: [PATCH 400/403] Add files via upload --- .../forms/close-contact-form-hpt-nl1-dev.json | 13 +++++++++++++ .../forms/close-contact-form-hpt-nl1-test.json | 13 +++++++++++++ .../server/forms/close-contact-form-hpt-nl4.json | 13 +++++++++++++ .../server/forms/close-contact-form-hpt-nl5.json | 13 +++++++++++++ .../server/forms/close-contact-form-hpt-nl7.json | 13 +++++++++++++ .../server/forms/close-contact-form-hpt-nl8.json | 13 +++++++++++++ .../server/forms/close-contact-form-hpt-uat.json | 13 +++++++++++++ .../server/forms/close-contact-form-nl1-dev.json | 13 +++++++++++++ .../server/forms/close-contact-form-nl1-test.json | 13 +++++++++++++ runner/src/server/forms/close-contact-form-nl4.json | 13 +++++++++++++ runner/src/server/forms/close-contact-form-nl5.json | 13 +++++++++++++ runner/src/server/forms/close-contact-form-nl7.json | 13 +++++++++++++ runner/src/server/forms/close-contact-form-nl8.json | 13 +++++++++++++ runner/src/server/forms/close-contact-form-uat.json | 13 +++++++++++++ 14 files changed, 182 insertions(+) diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json index 720455a42f..2c039dcfe2 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json index b12c073eb9..3cd5501e40 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json index baee34b58d..05e5c36111 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl4.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json index fa561bc770..07651b6c97 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl5.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json index 1582034745..cb75b2d140 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl7.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json index 458a188f38..eadd4b6059 100644 --- a/runner/src/server/forms/close-contact-form-hpt-nl8.json +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json index 8917a23209..e8966e4b69 100644 --- a/runner/src/server/forms/close-contact-form-hpt-uat.json +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -169,8 +169,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -201,6 +208,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json index 385a8e629a..66275c7ead 100644 --- a/runner/src/server/forms/close-contact-form-nl1-dev.json +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json index a0fe7b45db..61c563ff07 100644 --- a/runner/src/server/forms/close-contact-form-nl1-test.json +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json index 49017498a0..c4f6c6eeae 100644 --- a/runner/src/server/forms/close-contact-form-nl4.json +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json index f0884f00cd..502119bdd1 100644 --- a/runner/src/server/forms/close-contact-form-nl5.json +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json index ad0a614280..105019ae00 100644 --- a/runner/src/server/forms/close-contact-form-nl7.json +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json index ebb1f25f17..4b63907660 100644 --- a/runner/src/server/forms/close-contact-form-nl8.json +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json index 408be87638..2d46aec2d7 100644 --- a/runner/src/server/forms/close-contact-form-uat.json +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -168,8 +168,15 @@ "type": "Html", "content": "

    Contact details

    " }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, { "name": "mobile_number", + "options": { "required": false, "optionalText": false }, "type": "TelephoneNumberField", "title": "Mobile number", "hint": "For example, 07700 900999", @@ -200,6 +207,12 @@ "type": "EmailAddressField", "title": "Email address", "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" } ], "next": [{ "path": "/check-your-details" }], From 75918965ca351b2d67846a22a98914f856a6d06d Mon Sep 17 00:00:00 2001 From: Kathryn Dale Date: Wed, 24 Sep 2025 08:57:34 +0100 Subject: [PATCH 401/403] Update value of Y&H in list --- runner/src/server/forms/ReportAnOutbreak.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json index 7a7129203d..2da9aa08f8 100644 --- a/runner/src/server/forms/ReportAnOutbreak.json +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -3508,7 +3508,7 @@ }, { "text": "Yorkshire and the Humber", - "value": "Yorkshire and the Humber" + "value": "Yorkshire and the Humber HPT" }, { "text": "East Midlands", From 1cb7718785066ad4716c567d1d1b1ec206b27c5a Mon Sep 17 00:00:00 2001 From: Sully Date: Wed, 24 Sep 2025 15:33:50 +0100 Subject: [PATCH 402/403] fix dac audit issue with dd and dt tags --- runner/src/server/forms/kls-enquiries.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json index b0b0d47ac7..3a9fe87af2 100644 --- a/runner/src/server/forms/kls-enquiries.json +++ b/runner/src/server/forms/kls-enquiries.json @@ -168,7 +168,7 @@ "options": {}, "type": "Details", "title": "Click here to learn about the types of enquiry that the KLS team support", - "content": "
    Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.

    Systematic review: the provision of complex literature searches to help in the production of a systematic review, with associated guidance on the stages of conducting a review. The time taken to deliver the search and advice will be dependent on the type of review.

    Evidence briefing: outlines the main messages taken from evidence that has been identified and selected using systematic methods and strict inclusion criteria. It usually takes at least 3 weeks to produce an Evidence Briefing and they are subject to certain eligibility criteria

    Current awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.

    General enquiry: select this option for support with any other queries.
    ", + "content": "
    Literature search
    A detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.
    Systematic review
    The provision of complex literature searches to help in the production of a systematic review, with associated guidance on the stages of conducting a review. The time taken to deliver the search and advice will be dependent on the type of review.
    Evidence briefing
    Outlines the main messages taken from evidence that has been identified and selected using systematic methods and strict inclusion criteria. It usually takes at least 3 weeks to produce an Evidence Briefing and they are subject to certain eligibility criteria.
    Current awareness alerts
    Support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.
    General enquiry
    Select this option for support with any other queries.
    ", "schema": {} }, { @@ -880,7 +880,7 @@ "options": {}, "type": "Details", "title": "Click here to learn about the types of enquiry that the KLS team support", - "content": "
    Literature search: a detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.

    Current awareness alerts: support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.

    General enquiry: select this option for support with any other queries.
    ", + "content": "
    Literature search
    A detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.
    Current awareness alerts
    Support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.
    General enquiry
    Select this option for support with any other queries.
    ", "schema": {} }, { From 3d659e76393a27afa5e8a225fa04109fb7087188 Mon Sep 17 00:00:00 2001 From: kitttang Date: Sat, 27 Sep 2025 01:10:05 +0100 Subject: [PATCH 403/403] feature: remove rows from summary page --- .../src/server/transforms/summaryDetails/index.ts | 9 +++++++++ .../transforms/summaryDetails/removeRows.ts | 15 +++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 runner/src/server/transforms/summaryDetails/removeRows.ts diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 079a77d820..6294ed502e 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -1,6 +1,7 @@ "use strict"; import { mergeRows } from "./mergeRows"; +import { removeRows } from "./removeRows"; import { filterSections } from "./filterSections"; import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; @@ -23,6 +24,8 @@ const closeContactParams = [ }, ]; +const klsParams = ["ZpmVWP"]; + const summaryDetailsTransformations: SummaryDetailsTransformationMap = { "close-contact-form-nl1-dev": (details) => { const firstTransform = mergeRows(details, closeContactParams); @@ -108,6 +111,12 @@ const summaryDetailsTransformations: SummaryDetailsTransformationMap = { const firstTransform = mergeRows(details, closeContactParams); return filterSections(firstTransform); }, + "kls-enquiries": (details) => { + return removeRows(details, klsParams); + }, + "kls-training-request": (details) => { + return removeRows(details, klsParams); + }, }; module.exports = summaryDetailsTransformations; diff --git a/runner/src/server/transforms/summaryDetails/removeRows.ts b/runner/src/server/transforms/summaryDetails/removeRows.ts new file mode 100644 index 0000000000..8a6b29d9be --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/removeRows.ts @@ -0,0 +1,15 @@ +// Remove rows from summary details based on field name + +export function removeRows( + details: any, + names: Array +) { + return details.map( + (detail: { name: string; title: string; items: Array }) => { + const filteredItems = detail.items + .filter((item) => !names.includes(item.name)); + + return { ...detail, items: filteredItems }; + } + ); +}