diff --git a/app/assets/javascripts/shared/meetings-2/due-date.js b/app/assets/javascripts/shared/meetings-2/due-date.js new file mode 100644 index 00000000..e83f21d4 --- /dev/null +++ b/app/assets/javascripts/shared/meetings-2/due-date.js @@ -0,0 +1,75 @@ +// Validation for the not guilty plea date field on the meetings-2 due-date page. +// Two scenarios: mandatory field, and the date must be in the past. +function validateForm() { + // Clear previous errors + $('#error-form-group').removeClass('govuk-form-group--error'); + $('#error-message-1').remove(); + $('#ngp-date').removeClass('govuk-input--error'); + $('#error-summary').remove(); + + var dateValue = document.getElementById('ngp-date').value; + var dateDatePicker = $('#ngp-date-picker'); + var errorMessage = validateDate(dateValue); + + if (errorMessage) { + // Error form group styling + $('#error-form-group').addClass('govuk-form-group--error'); + + // Error message below the label, before the date picker + dateDatePicker.before('

Error: ' + errorMessage + '

'); + + // Error input field styling + $('#ngp-date').addClass('govuk-input--error'); + + // Error summary at the top + $('form').before( + '' + ); + $('#error-summary').focus(); + + return false; + } + + return true; +} + +function validateDate(dateString) { + // Mandatory field + if (!dateString || dateString.trim() === '') { + return 'Enter the date the defendant pleaded not guilty'; + } + + // Check format (DD/MM/YYYY) + var datePattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/; + var match = dateString.match(datePattern); + + if (!match) { + return 'Enter the date in the correct format, like 20/08/2026'; + } + + var day = parseInt(match[1], 10); + var month = parseInt(match[2], 10); + var year = parseInt(match[3], 10); + + // Check valid month + if (month < 1 || month > 12) { + return 'Enter a real date'; + } + + // Check valid day for month + var daysInMonth = new Date(year, month, 0).getDate(); + if (day < 1 || day > daysInMonth) { + return 'Enter a real date'; + } + + // Must be today or in the past + var inputDate = new Date(year, month - 1, day); + var today = new Date(); + today.setHours(0, 0, 0, 0); + + if (inputDate > today) { + return 'The date the defendant pleaded not guilty must be today or in the past'; + } + + return null; // No error +} diff --git a/app/assets/javascripts/shared/meetings-2/meeting-due-date.js b/app/assets/javascripts/shared/meetings-2/meeting-due-date.js new file mode 100644 index 00000000..f1b5b29d --- /dev/null +++ b/app/assets/javascripts/shared/meetings-2/meeting-due-date.js @@ -0,0 +1,59 @@ +// Validation for the meetings-2 meeting-due-date page. +// The radio question is mandatory. If "By another date" is selected, the +// conditional date field is also mandatory. +function validateForm() { + // Clear previous errors + $('#error-form-group-1').removeClass('govuk-form-group--error'); + $('#error-form-group-2').removeClass('govuk-form-group--error'); + $('#error-message-1').remove(); + $('#error-message-2').remove(); + $('#meeting-due-date').removeClass('govuk-input--error'); + $('#error-summary').remove(); + + var selectedOption = $('[name=meetingDueOption]:checked').val(); + var dueDateValue = document.getElementById('meeting-due-date').value; + + var optionError = null; + var dateError = null; + + // The radio question is mandatory + if (!selectedOption) { + optionError = 'Select when the offer is due for the CPS pre-trial meeting'; + } else if (selectedOption === 'other-date' && dueDateValue.trim() === '') { + // Conditional date field is mandatory when "By another date" is chosen + dateError = 'Enter the meeting offer due date'; + } + + if (optionError || dateError) { + // Error summary at the top + var summaryItems = ''; + if (optionError) { + summaryItems += '
  • ' + optionError + '
  • '; + } + if (dateError) { + summaryItems += '
  • ' + dateError + '
  • '; + } + + $('form').before( + '' + ); + $('#error-summary').focus(); + + // Radio question error + if (optionError) { + $('#error-form-group-1').addClass('govuk-form-group--error'); + $('#ngp-date-hint1').after('

    Error: ' + optionError + '

    '); + } + + // Conditional date field error + if (dateError) { + $('#error-form-group-2').addClass('govuk-form-group--error'); + $('#meeting-due-date').addClass('govuk-input--error'); + $('#meeting-due-date-picker').before('

    Error: ' + dateError + '

    '); + } + + return false; + } + + return true; +} diff --git a/app/filters.js b/app/filters.js index c15f3417..2f5967cf 100644 --- a/app/filters.js +++ b/app/filters.js @@ -65,6 +65,23 @@ addFilter('formatDate', dateString => { return `${dayOfWeek}, ${dayOfMonth} ${month} ${year}` }) +// Add N days to a dd/mm/yyyy date and return dd/mm/yyyy. Pipe to formatDate for display. +addFilter('addDays', (dateString, days) => { + if (!dateString || !dateString.includes('/')) return dateString + const parts = dateString.split('/') + if (parts.length !== 3) return dateString + const day = parseInt(parts[0], 10) + const month = parseInt(parts[1], 10) - 1 + const year = parseInt(parts[2], 10) + const date = new Date(year, month, day) + if (isNaN(date.getTime())) return dateString + date.setDate(date.getDate() + Number(days || 0)) + const dd = String(date.getDate()).padStart(2, '0') + const mm = String(date.getMonth() + 1).padStart(2, '0') + const yyyy = date.getFullYear() + return `${dd}/${mm}/${yyyy}` +}) + addFilter('ageFromDob', dobString => { if (!dobString) return '' const parts = dobString.split('/') diff --git a/app/routes/meetings.js b/app/routes/meetings.js index 0716a890..d0d0c623 100644 --- a/app/routes/meetings.js +++ b/app/routes/meetings.js @@ -728,7 +728,7 @@ module.exports = router => { router.post('/log-outcome/did-meeting-happen2-answer', function(request, response) { - var meeting3 = request.session.data['meeting3'] + var meeting3 = request.session.data['logMeetingHappened'] if (meeting3 == "yes"){ response.redirect("/v50/meetings-2/log-outcome/duration") } else { @@ -1052,7 +1052,7 @@ module.exports = router => { if (actionsAgreed2 == "yes"){ response.redirect("/v50/meetings-2/log-outcome/check-answers") } else { - response.redirect("/v50/meetings-2/log-outcome/check-answers-no") + response.redirect("/v50/meetings-2/log-outcome/check-answers") } }) diff --git a/app/routes/v50.js b/app/routes/v50.js index eef779bf..2ad5ce60 100644 --- a/app/routes/v50.js +++ b/app/routes/v50.js @@ -37,6 +37,16 @@ module.exports = router => { response.redirect("/v50/tasks") }) + router.post('/v50/meetings-2/due-date-answer', function(request, response) { + + response.redirect("/v50/meetings-2/meeting-due-date") + }) + + router.post('/v50/meetings-2/meeting-due-date-answer', function(request, response) { + + response.redirect("/v50/meetings-2/meeting-offered-date") + }) + router.post('/v50/onb/service-lead-answer', function(request, response) { response.redirect("/v50/onb/check-details?successNotification=yes&onboardedStatus=Yes") diff --git a/app/views/v50/case-locked/by-someone-else.html b/app/views/v50/case-locked/by-someone-else.html index f0412393..dcd727e6 100644 --- a/app/views/v50/case-locked/by-someone-else.html +++ b/app/views/v50/case-locked/by-someone-else.html @@ -2,6 +2,10 @@ {% set pageName="Case locked" %} +{% block header %} +{% include "/v50/partials/header/none-selected.html" %} +{% endblock %} + {% set mainClasses = "govuk-main-wrapper-extra-padding-top" %} {% block content %} @@ -16,11 +20,11 @@

    We could not save the information you entered. To make an update, contact Gerald Kingsley-Smyth and ask them to exit the case.

    -

    + + + Go back diff --git a/app/views/v50/case-locked/self-locked.html b/app/views/v50/case-locked/self-locked.html index 9cff4e0f..337686ea 100644 --- a/app/views/v50/case-locked/self-locked.html +++ b/app/views/v50/case-locked/self-locked.html @@ -2,6 +2,10 @@ {% set pageName="Case locked" %} +{% block header %} +{% include "/v50/partials/header/none-selected.html" %} +{% endblock %} + {% set mainClasses = "govuk-main-wrapper-extra-padding-top" %} {% block content %} @@ -13,11 +17,11 @@

    We could not save the information you entered. To make an update, exit the case on CMS.

    -

    + + + Go back diff --git a/app/views/v50/meetings-2/due-date.html b/app/views/v50/meetings-2/due-date.html index f2a6b272..60f0c02f 100644 --- a/app/views/v50/meetings-2/due-date.html +++ b/app/views/v50/meetings-2/due-date.html @@ -14,137 +14,48 @@

    -

    - CPS pre-trial meeting due date -

    +
    -

    - The pre-trial meeting due date is usually based on the date the defendant pleaded not guilty. -

    +
    - - -
    - - - -
    - Use the date picker or enter a date. For example, 20/08/2026 -
    +
    + Use the date picker or enter a date. For example, 20/08/2026 +
    -
    - -
    - -
    - -

    - CPS are required to offer a pre-trial meeting by the due date. -

    - -
    - -
    - - - - Was the meeting due by the not guilty plea date? - - -
    - -
    - - -
    - -
    - - -
    - -
    - -
    - - - -
    - Use the date picker or enter a date. For example, 20/08/2026 -
    - -
    - -
    - -
    - -
    -
    -
    +
    -
    + - - Continue - +
    {% endblock %} + +{% block pageScripts %} + +{% endblock %} diff --git a/app/views/v50/meetings-2/log-outcome/agree-to-research.html b/app/views/v50/meetings-2/log-outcome/agree-to-research.html index a31fad13..2f4bff52 100644 --- a/app/views/v50/meetings-2/log-outcome/agree-to-research.html +++ b/app/views/v50/meetings-2/log-outcome/agree-to-research.html @@ -14,12 +14,12 @@
    -
    + {{ govukRadios({ - name: "meeting2", - value: data['meeting2'], + name: "logAgreedResearch", + value: data['logAgreedResearch'], fieldset: { legend: { text: "Did Sarah Phillips agree to be contacted for research?", @@ -37,21 +37,21 @@ text: "No" }, { - value: "no", + value: "not-asked", text: "The question was not asked" } ] }) }} + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/any-actions-agreed.html b/app/views/v50/meetings-2/log-outcome/any-actions-agreed.html index c5bae0b2..02d13f71 100644 --- a/app/views/v50/meetings-2/log-outcome/any-actions-agreed.html +++ b/app/views/v50/meetings-2/log-outcome/any-actions-agreed.html @@ -24,6 +24,7 @@ {{ govukTextarea({ id: "contact-by-email", name: "contactByEmail", + value: data['contactByEmail'], type: "text", autocomplete: "email", spellcheck: false, @@ -62,6 +63,7 @@ {{ govukRadios({ name: "actionsAgreed2", + value: data['actionsAgreed2'], fieldset: { legend: { text: "Were any actions agreed?", diff --git a/app/views/v50/meetings-2/log-outcome/chair-person.html b/app/views/v50/meetings-2/log-outcome/chair-person.html index c6fe6eb0..4dc5f27c 100644 --- a/app/views/v50/meetings-2/log-outcome/chair-person.html +++ b/app/views/v50/meetings-2/log-outcome/chair-person.html @@ -13,6 +13,7 @@ {% block content %}
    +
    @@ -22,25 +23,25 @@

    - +
    - +
    - +
    - + @@ -57,14 +58,15 @@



    + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +

    +
    diff --git a/app/views/v50/meetings-2/log-outcome/check-answers.html b/app/views/v50/meetings-2/log-outcome/check-answers.html index 0ffd225c..d93d5b47 100644 --- a/app/views/v50/meetings-2/log-outcome/check-answers.html +++ b/app/views/v50/meetings-2/log-outcome/check-answers.html @@ -1,6 +1,6 @@ {% extends "layouts/main.html" %} -{% set pageName="Purpose of meeting" %} +{% set pageName="Check your answers" %} {% block header %} {% include "/v50/partials/header/none-selected.html" %} @@ -14,166 +14,207 @@
    + {# --- Derive display values from session data, with sensible defaults --- #} + + {% if data['logMeetingHappened'] == "no" %}{% set meetingHappenedText = "No" %}{% else %}{% set meetingHappenedText = "Yes" %}{% endif %} + + {% if data['logDurationHours'] or data['logDurationMinutes'] %} + {% set durationText = (data['logDurationHours'] or "0") + " hours " + (data['logDurationMinutes'] or "0") + " minutes" %} + {% else %} + {% set durationText = "3 hours 30 minutes" %} + {% endif %} + + {% set attendeesList = data['logAttended'] %} + {% if attendeesList is string %}{% set attendeesList = [attendeesList] %}{% endif %} + + {% set meetingLeadText = data['logMeetingLead'] if data['logMeetingLead'] else "High court advocate (SHEAF, Jessica)" %} + + {% if data['logCounselAttended'] == "no" %}{% set counselText = "No" %}{% else %}{% set counselText = "Yes" %}{% endif %} + + {% if data['logEligibleExpenses'] == "no" %}{% set expensesText = "No" %}{% else %}{% set expensesText = "Yes" %}{% endif %} + + {% if data['logAgreedResearch'] == "yes" %}{% set researchText = "Yes" %} + {% elif data['logAgreedResearch'] == "not-asked" %}{% set researchText = "The question was not asked" %} + {% else %}{% set researchText = "No" %}{% endif %} + + {% if data['logNotesInCms'] == "no" %}{% set notesCmsText = "No" %}{% else %}{% set notesCmsText = "Yes" %}{% endif %} + + {% if data['logNotesToOic'] == "no" %}{% set notesOicText = "No" %}{% else %}{% set notesOicText = "Yes" %}{% endif %} + + {% if data['logNotesToVictim'] == "no" %}{% set notesVictimText = "No" %}{% else %}{% set notesVictimText = "Yes" %}{% endif %} + + {% if data['actionsAgreed2'] == "no" %}{% set actionsText = "No" %}{% else %}{% set actionsText = "Yes" %}{% endif %} + + {% set whatAgreedText = data['contactByEmail'] if data['contactByEmail'] else "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in feugiat sem, at facilisis diam. Ut sit amet mi ac nisi blandit rutrum." %}

    Check your answers before logging the meeting outcome

    -
    -
    -
    - Duration of the meeting -
    - 3 hours 30 minutes - -
    - Change name -
    -
    - - -
    -
    - Attendees -
    -
    -

    Victim (PHILLIPS Sarah)

    -

    High court advocate (SHEAF, Jessica)

    -

    Family liaison officer (BIDWELL, Jane)

    -

    Independent domestic violence adviser (IDVA) (SAKAMOTO, Hadji)

    -

    Police officer in charge (PC FISHER, Jane)

    -
    -
    - Change contact details -
    - -
    - -
    -
    -Meeting lead -
    -
    -High court advocate (SHEAF, Jessica) -
    -
    - Change contact details -
    - -
    - - -
    -
    -Counsel attended -
    -
    -Yes -
    -
    - Change contact details -
    - -
    - - -
    -
    -Eligible for expenses -
    -
    -Yes -
    -
    - Change contact details -
    - -
    - - - -
    -
    -Agreed to research -
    -
    -No -
    -
    - Change contact details -
    - -
    - -
    -
    - Meeting notes -
    -
    -Yes
    -
    - Change contact details -
    - -
    -
    -
    - Meeting notes to OIC -
    -
    -Yes
    -
    - Change contact details -
    - -
    - -
    -
    - Meeting notes to victim -
    -
    -Yes
    -
    - Change contact details -
    - -
    -
    -
    -Actions agreed -
    -
    - Yes -
    -
    - Change contact details -
    - -
    - - -
    -
    - What was agreed -
    -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in feugiat sem, at facilisis diam. Ut sit amet mi ac nisi blandit rutrum. -
    -
    - Change contact details -
    - -
    -
    +
    + +
    +
    + Did the meeting take place? +
    +
    + {{ meetingHappenedText }} +
    +
    + Change whether the meeting took place +
    +
    + +
    +
    + Duration of the meeting +
    +
    + {{ durationText }} +
    +
    + Change duration of the meeting +
    +
    + +
    +
    + Attendees +
    +
    + {% if attendeesList and attendeesList | length %} + {% for attendee in attendeesList %}{% if attendee != "_unchecked" %}

    {{ attendee }}

    {% endif %}{% endfor %} + {% else %} +

    Victim (PHILLIPS, Sarah)

    +

    High court advocate (SHEAF, Jessica)

    +

    Family liaison officer (BIDWELL, Jane)

    +

    Independent domestic violence adviser (IDVA) (SAKAMOTO, Hadji)

    +

    Police officer in charge (PC FISHER, Jane)

    + {% endif %} +
    +
    + Change attendees +
    +
    + +
    +
    + Meeting lead +
    +
    + {{ meetingLeadText }} +
    +
    + Change meeting lead +
    +
    + +
    +
    + Counsel attended +
    +
    + {{ counselText }} +
    +
    + Change whether counsel attended +
    +
    + +
    +
    + Eligible for expenses +
    +
    + {{ expensesText }} +
    +
    + Change eligibility for expenses +
    +
    + +
    +
    + Agreed to research +
    +
    + {{ researchText }} +
    +
    + Change whether they agreed to research +
    +
    + +
    +
    + Meeting notes saved in CMS +
    +
    + {{ notesCmsText }} +
    +
    + Change whether meeting notes are saved in CMS +
    +
    + +
    +
    + Meeting notes sent to OIC +
    +
    + {{ notesOicText }} +
    +
    + Change whether meeting notes were sent to OIC +
    +
    + +
    +
    + Meeting notes sent to victim +
    +
    + {{ notesVictimText }} +
    +
    + Change whether meeting notes were sent to the victim +
    +
    + +
    +
    + Actions agreed +
    +
    + {{ actionsText }} +
    +
    + Change whether actions were agreed +
    +
    + + {% if actionsText == "Yes" %} +
    +
    + What was agreed +
    +
    + {{ whatAgreedText }} +
    +
    + Change what was agreed +
    +
    + {% endif %} + +
    - + + Log meeting outcome to offer a CPS pre-trial meeting + + + Cancel to offer a CPS pre-trial meeting + +

    diff --git a/app/views/v50/meetings-2/log-outcome/did-counsel-attend.html b/app/views/v50/meetings-2/log-outcome/did-counsel-attend.html index 781fcf0a..ccdf030c 100644 --- a/app/views/v50/meetings-2/log-outcome/did-counsel-attend.html +++ b/app/views/v50/meetings-2/log-outcome/did-counsel-attend.html @@ -14,12 +14,12 @@
    -
    + {{ govukRadios({ - name: "meeting2", - value: data['meeting2'], + name: "logCounselAttended", + value: data['logCounselAttended'], fieldset: { legend: { text: "Did counsel attend the meeting?", @@ -40,14 +40,14 @@ }) }} + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/did-meeting-happen.html b/app/views/v50/meetings-2/log-outcome/did-meeting-happen.html index 6c040db1..50b3c204 100644 --- a/app/views/v50/meetings-2/log-outcome/did-meeting-happen.html +++ b/app/views/v50/meetings-2/log-outcome/did-meeting-happen.html @@ -18,8 +18,8 @@ {{ govukRadios({ - name: "meeting3", - value: data['meeting3'], + name: "logMeetingHappened", + value: data['logMeetingHappened'], fieldset: { legend: { text: "Did the meeting take place?", diff --git a/app/views/v50/meetings-2/log-outcome/duration.html b/app/views/v50/meetings-2/log-outcome/duration.html index baa34352..ad5ae18c 100644 --- a/app/views/v50/meetings-2/log-outcome/duration.html +++ b/app/views/v50/meetings-2/log-outcome/duration.html @@ -16,7 +16,7 @@

    How long did the meeting last?

    -
    + @@ -36,7 +36,7 @@

    How long did the meeting last?

    - +
    @@ -48,7 +48,7 @@

    How long did the meeting last?

    - +
    @@ -59,14 +59,14 @@

    How long did the meeting last?

    + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/eligible-for-expenses.html b/app/views/v50/meetings-2/log-outcome/eligible-for-expenses.html index d367d2fd..42c496fa 100644 --- a/app/views/v50/meetings-2/log-outcome/eligible-for-expenses.html +++ b/app/views/v50/meetings-2/log-outcome/eligible-for-expenses.html @@ -14,12 +14,12 @@
    -
    + {{ govukRadios({ - name: "meeting2", - value: data['meeting2'], + name: "logEligibleExpenses", + value: data['logEligibleExpenses'], fieldset: { legend: { text: "Is Sarah Phillips eligible for expenses?", @@ -40,14 +40,14 @@ }) }} + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/minutes-sent-oic.html b/app/views/v50/meetings-2/log-outcome/minutes-sent-oic.html index 5ad6c72e..e841c7f8 100644 --- a/app/views/v50/meetings-2/log-outcome/minutes-sent-oic.html +++ b/app/views/v50/meetings-2/log-outcome/minutes-sent-oic.html @@ -14,9 +14,11 @@
    +
    + {{ govukRadios({ - name: "meeting2", - value: data['meeting2'], + name: "logNotesToOic", + value: data['logNotesToOic'], fieldset: { legend: { text: "Have the meeting notes been sent to the Officer in Charge (OIC)?", @@ -37,14 +39,14 @@ }) }} + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/minutes-sent.html b/app/views/v50/meetings-2/log-outcome/minutes-sent.html index be634804..a93f03a1 100644 --- a/app/views/v50/meetings-2/log-outcome/minutes-sent.html +++ b/app/views/v50/meetings-2/log-outcome/minutes-sent.html @@ -14,9 +14,11 @@
    +
    + {{ govukRadios({ - name: "meeting2", - value: data['meeting2'], + name: "logNotesToVictim", + value: data['logNotesToVictim'], fieldset: { legend: { text: "Have the meeting notes been sent to Sarah Phillips?", @@ -37,14 +39,14 @@ }) }} + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/upload-file.html b/app/views/v50/meetings-2/log-outcome/upload-file.html index 0f903fd8..2c05e83f 100644 --- a/app/views/v50/meetings-2/log-outcome/upload-file.html +++ b/app/views/v50/meetings-2/log-outcome/upload-file.html @@ -14,9 +14,11 @@
    +
    + {{ govukRadios({ - name: "meeting2", - value: data['meeting2'], + name: "logNotesInCms", + value: data['logNotesInCms'], fieldset: { legend: { text: "Have meeting notes been saved in CMS?", @@ -37,14 +39,14 @@ }) }} + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +
    diff --git a/app/views/v50/meetings-2/log-outcome/who-attended.html b/app/views/v50/meetings-2/log-outcome/who-attended.html index cd450dbe..ae02cfeb 100644 --- a/app/views/v50/meetings-2/log-outcome/who-attended.html +++ b/app/views/v50/meetings-2/log-outcome/who-attended.html @@ -14,6 +14,12 @@
    + {% set sel = data['logAttended'] %} + {% if sel is string %}{% set sel = [sel] %}{% endif %} + {% if not sel %}{% set sel = [] %}{% endif %} + +
    +
    @@ -28,33 +34,33 @@

    - +
    - +
    - +
    - +
    - + @@ -71,14 +77,15 @@



    + {{ govukButton({ + text: "Continue" + }) }} + {{ govukButton({ + text: "Cancel", + classes: "govuk-button--secondary" + }) }} +

    +

    {% endblock %} diff --git a/app/views/v50/meetings-2/meeting-due-date.html b/app/views/v50/meetings-2/meeting-due-date.html new file mode 100644 index 00000000..2c3ee327 --- /dev/null +++ b/app/views/v50/meetings-2/meeting-due-date.html @@ -0,0 +1,118 @@ +{% extends "layouts/main.html" %} + +{% set pageName="Purpose of meeting" %} + +{% block header %} +{% include "/v50/partials/header/none-selected.html" %} +{% endblock %} + +{% block beforeContent %} +Back +{% endblock %} + +{% block content %} +
    +
    + +
    + +
    + +
    + + +

    + When is the offer due for the CPS pre-trial meeting? +

    +
    + +
    + The defendant pleaded not guilty on {{ data['ngpDate'] | formatDate }} +
    + +
    + +
    + + +
    + {{ data['ngpDate'] | addDays(14) | formatDate }} +
    +
    + +
    + + +
    + +
    + +
    + + + +
    + Use the date picker or enter a date. For example, 20/08/2026 +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + + +
    + +
    +
    +{% endblock %} + +{% block pageScripts %} + +{% endblock %} diff --git a/app/views/v50/victim/victim-details/address.html b/app/views/v50/victim/victim-details/address.html index fbca5730..9e26f720 100644 --- a/app/views/v50/victim/victim-details/address.html +++ b/app/views/v50/victim/victim-details/address.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +

    What is {{ data['victimForename'] }} {{ data['victimSurname'] }}'s address?

    diff --git a/app/views/v50/victim/victim-details/category.html b/app/views/v50/victim/victim-details/category.html index 40c64733..df0a0fc3 100644 --- a/app/views/v50/victim/victim-details/category.html +++ b/app/views/v50/victim/victim-details/category.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/correspondence-language.html b/app/views/v50/victim/victim-details/correspondence-language.html index 02b9d2c8..a0df25c5 100644 --- a/app/views/v50/victim/victim-details/correspondence-language.html +++ b/app/views/v50/victim/victim-details/correspondence-language.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/date-of-birth.html b/app/views/v50/victim/victim-details/date-of-birth.html index d154269f..39f7f7f7 100644 --- a/app/views/v50/victim/victim-details/date-of-birth.html +++ b/app/views/v50/victim/victim-details/date-of-birth.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/disability.html b/app/views/v50/victim/victim-details/disability.html index 9ca39f48..6817fac9 100644 --- a/app/views/v50/victim/victim-details/disability.html +++ b/app/views/v50/victim/victim-details/disability.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/email-address.html b/app/views/v50/victim/victim-details/email-address.html index fd4b2479..15bc859c 100644 --- a/app/views/v50/victim/victim-details/email-address.html +++ b/app/views/v50/victim/victim-details/email-address.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/ethnicity.html b/app/views/v50/victim/victim-details/ethnicity.html index 53a9e5d7..ba94f97a 100644 --- a/app/views/v50/victim/victim-details/ethnicity.html +++ b/app/views/v50/victim/victim-details/ethnicity.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/full-name.html b/app/views/v50/victim/victim-details/full-name.html index 3b731d1b..1b6cf2f9 100644 --- a/app/views/v50/victim/victim-details/full-name.html +++ b/app/views/v50/victim/victim-details/full-name.html @@ -11,37 +11,44 @@ {% block content %}
    -
    +
    - + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} -

    Name and title

    + -
    - - -
    +

    Name and title

    -
    - - -
    +
    + + +
    -
    - - -
    +
    + + +
    -
    - - -
    +
    + + +
    - +
    + + +
    - -
    + + +
    +
    {% endblock %} {% block pageScripts %} diff --git a/app/views/v50/victim/victim-details/gender.html b/app/views/v50/victim/victim-details/gender.html index 77f9fbf9..6ad8366a 100644 --- a/app/views/v50/victim/victim-details/gender.html +++ b/app/views/v50/victim/victim-details/gender.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +
    diff --git a/app/views/v50/victim/victim-details/telephone-number.html b/app/views/v50/victim/victim-details/telephone-number.html index fd5fd767..9084f167 100644 --- a/app/views/v50/victim/victim-details/telephone-number.html +++ b/app/views/v50/victim/victim-details/telephone-number.html @@ -13,6 +13,13 @@
    + {% if (data['case-locked'] == "by-someone-else") %} + {% include "/v50/partials/case-locked-banner/by-someone-else.html" %} + {% elif (data['case-locked'] == "self-locked") %} + {% include "/v50/partials/case-locked-banner/self-locked.html" %} + {% else %} + {% endif %} +

    What are {{ data['victimForename'] }} {{ data['victimSurname'] }}'s telephone numbers?