Skip to content

Commit 5ab3449

Browse files
committed
Merge branch 'main' into RA-243/add-log-prisoner-details-tests
2 parents dc2f0ff + a31139d commit 5ab3449

File tree

5 files changed

+92
-0
lines changed

5 files changed

+92
-0
lines changed

server/routes/applications/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import asyncMiddleware from '../../middleware/asyncMiddleware'
33
import AuditService, { Page } from '../../services/auditService'
44
import applicationTypeRoutes from './applicationTypeRoutes'
55
import prisonerDetailsRoutes from './prisonerDetailsRoutes'
6+
import swapVosPinCreditDetailsRoutes from './swapVosPinCreditDetailsRoutes'
67

78
export default function applicationsRoutes({ auditService }: { auditService: AuditService }): Router {
89
const router = Router()
@@ -50,6 +51,7 @@ export default function applicationsRoutes({ auditService }: { auditService: Aud
5051

5152
router.use(applicationTypeRoutes({ auditService }))
5253
router.use(prisonerDetailsRoutes({ auditService }))
54+
router.use(swapVosPinCreditDetailsRoutes({ auditService }))
5355

5456
return router
5557
}

server/routes/applications/prisonerDetailsRoutes.ts

+7
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,12 @@ export default function prisonerDetailsRoutes({ auditService }: { auditService:
2424
}),
2525
)
2626

27+
router.post(
28+
'/log/prisoner-details',
29+
asyncMiddleware(async (req: Request, res: Response) => {
30+
res.redirect(`/log/swap-vos-pin-credit-details`)
31+
}),
32+
)
33+
2734
return router
2835
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { Request, Response, Router } from 'express'
2+
import asyncMiddleware from '../../middleware/asyncMiddleware'
3+
import AuditService, { Page } from '../../services/auditService'
4+
import { APPLICATION_TYPES } from '../../constants/applicationTypes'
5+
6+
export default function swapVosPinCreditDetailsRoutes({ auditService }: { auditService: AuditService }): Router {
7+
const router = Router()
8+
9+
router.get(
10+
'/log/swap-vos-pin-credit-details',
11+
asyncMiddleware(async (req: Request, res: Response) => {
12+
await auditService.logPageView(Page.LOG_SWAP_VOS_PIN_CREDIT_DETAILS_PAGE, {
13+
who: res.locals.user.username,
14+
correlationId: req.id,
15+
})
16+
17+
const selectedAppType = APPLICATION_TYPES.find(type => type.value === req.session.applicationData?.type.value)
18+
19+
if (!selectedAppType) {
20+
return res.redirect('/log/application-type')
21+
}
22+
23+
return res.render('pages/log/swap-vos-pin-credit-details', {
24+
title: 'Log swap VOs for PIN credit details',
25+
appTypeTitle: 'Swap VOs for PIN credit',
26+
})
27+
}),
28+
)
29+
30+
return router
31+
}

server/services/auditService.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export enum Page {
55
APPLICATIONS_PAGE = 'APPLICATIONS_PAGE',
66
LOG_APPLICATION_TYPE_PAGE = 'LOG_APPLICATION_TYPE_PAGE',
77
LOG_PRISONER_DETAILS_PAGE = 'LOG_PRISONER_DETAILS_PAGE',
8+
LOG_SWAP_VOS_PIN_CREDIT_DETAILS_PAGE = 'LOG_SWAP_VOS_PIN_CREDIT_DETAILS_PAGE',
89
}
910

1011
export interface PageViewEventDetails {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{% from "govuk/components/back-link/macro.njk" import govukBackLink %}
2+
{% from "govuk/components/character-count/macro.njk" import govukCharacterCount %}
3+
{% from "govuk/components/button/macro.njk" import govukButton %}
4+
5+
{% extends "../../partials/layout.njk" %}
6+
7+
{% set pageTitle = applicationName + " - " + title %}
8+
{% set mainClasses = "app-container govuk-body applications-landing-page" %}
9+
10+
{% block content %}
11+
<div class="govuk-body govuk-width-container">
12+
{{ govukBackLink({
13+
text: "Back",
14+
href: "/log/prisoner-details"
15+
}) }}
16+
17+
<span class="govuk-caption-xl">{{ appTypeTitle }}</span>
18+
<h1 class="govuk-heading-xl govuk-!-margin-top-0">Log details</h1>
19+
20+
<div class="govuk-width-container">
21+
<div class="govuk-grid-row">
22+
<div class="govuk-grid-column-one-half">
23+
<form method="POST" id="log-swap-vos-pin-credit-details">
24+
<input type="hidden" name="_csrf" value="{{ csrfToken }}" />
25+
26+
{{ govukCharacterCount({
27+
name: "swap-vos-pin-credit-details",
28+
id: "swap-vos-pin-credit-details",
29+
maxlength: 1000,
30+
threshold: 75,
31+
value: textareaValue,
32+
label: {
33+
text: "Details (optional)",
34+
classes: "govuk-label--s",
35+
isPageHeading: true
36+
},
37+
hint: {
38+
text: "Add a brief summary, for example, if this person is a Foreign National"
39+
}
40+
}) }}
41+
42+
{{ govukButton({
43+
text: "Continue",
44+
classes: "govuk-button--primary"
45+
}) }}
46+
</form>
47+
</div>
48+
</div>
49+
</div>
50+
</div>
51+
{% endblock %}

0 commit comments

Comments
 (0)