Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
ce18db9
feat: add non-strategic publishing for UTCC, UTLC and UTAAC list types
abottenberg May 29, 2026
541e542
fix: make optional fields truly optional and add UT list type PDF dow…
alexbottenberg Jun 2, 2026
1c6a61f
feat: auto-select Public sensitivity when non-strategic list type is …
alexbottenberg Jun 2, 2026
4aea6e1
feat: add Welsh translations for non-strategic upload pages
alexbottenberg Jun 2, 2026
0336361
fix: address code review issues for UT non-strategic publishing (#425)
alexbottenberg Jun 2, 2026
ebf5fe2
chore: update yarn.lock for UT list type packages
alexbottenberg Jun 2, 2026
f93f838
test: add missing unit test coverage for UTCC, UTLC and UTAAC modules
alexbottenberg Jun 2, 2026
ed373c6
refactor: extract shared pdf generator factory to list-types-common
alexbottenberg Jun 2, 2026
d9dc62a
test: add coverage for createDailyHearingListPdfGenerator in pdf-util…
alexbottenberg Jun 2, 2026
005a0f4
feat: add Welsh translations for UT list types, locations and list ty…
alexbottenberg Jun 2, 2026
41cb3d4
fix: upsert locations on every startup to apply welshName updates
alexbottenberg Jun 2, 2026
6c4b466
refactor: move UT list type page controllers to apps/web and align wi…
junaidiqbalmoj Jun 16, 2026
e7120b0
fix: update pdf-generator locale imports from pages/ to locales/
junaidiqbalmoj Jun 16, 2026
fd712ae
fix: update UT module package.json and fix list-type-validator test
junaidiqbalmoj Jun 16, 2026
34ebecf
chore: update yarn lockfile after typescript/vitest version bumps
junaidiqbalmoj Jun 16, 2026
c138f5a
fix: revert importOriginal mock to simple factory to prevent CI timeout
junaidiqbalmoj Jun 16, 2026
bf53613
fix: make artefact foreign key migration idempotent
junaidiqbalmoj Jun 16, 2026
03ad90c
fix: remove duplicate migration and make FK constraint addition idemp…
junaidiqbalmoj Jun 16, 2026
4565cac
Fix UT List functionality
junaidiqbalmoj Jun 16, 2026
536e191
fix build
junaidiqbalmoj Jun 16, 2026
58e5764
fix build
junaidiqbalmoj Jun 17, 2026
f034299
fix: resolve preview deployment failures on fresh PR installs
junaidiqbalmoj Jun 17, 2026
6624fff
chore: merge master into feature branch
junaidiqbalmoj Jun 17, 2026
a50e526
fix: wait for DB availability in postgres startup and extend probe wi…
junaidiqbalmoj Jun 17, 2026
1516ea1
chore: merge master into feature branch
junaidiqbalmoj Jun 17, 2026
9c68625
fix: remove MAX_WAIT exit from postgres start.sh and extend deploy ti…
junaidiqbalmoj Jun 17, 2026
4049f54
fix: revert databases to list format matching other passing PRs
junaidiqbalmoj Jun 17, 2026
f8190fb
fix: restore vitest 4.1.9 in publication to match monorepo and fix CI…
junaidiqbalmoj Jun 17, 2026
457e92d
chore: merge master into feature branch
junaidiqbalmoj Jun 17, 2026
042fcf5
fix: resolve TS2345 type error in pdf download route
junaidiqbalmoj Jun 17, 2026
007b0dc
fix: upsert regions and jurisdictions on existing DBs to prevent FK v…
junaidiqbalmoj Jun 17, 2026
dc900f3
revert: restore original Helm timeout and startupFailureThreshold values
junaidiqbalmoj Jun 17, 2026
aeff5d5
fix: start health server immediately so Helm sees pod as ready during…
junaidiqbalmoj Jun 17, 2026
b570248
fix: increase E2E health check retries to 5 minutes for fresh DB deploys
junaidiqbalmoj Jun 17, 2026
1899afd
revert: restore maxRetries to 30 — increasing it was wrong approach
junaidiqbalmoj Jun 17, 2026
51185a8
fix: use npx prisma instead of ./node_modules/.bin/prisma in start.sh
junaidiqbalmoj Jun 17, 2026
8a4888a
ci: trigger rebuild to capture pod logs
junaidiqbalmoj Jun 17, 2026
f827654
fix: run migrations before starting health server in postgres start.sh
junaidiqbalmoj Jun 17, 2026
e99fe15
fix: add --ignore-scripts to npx prisma calls in start.sh
junaidiqbalmoj Jun 18, 2026
1bd68e1
chore: merge master into feature/425-ut-non-strategic-publishing-clean
junaidiqbalmoj Jun 18, 2026
8182a62
Merge branch 'master' into feature/425-ut-non-strategic-publishing-clean
junaidiqbalmoj Jun 25, 2026
84c3bb9
fix code review comment
junaidiqbalmoj Jun 25, 2026
eea8430
Merge branch 'master' into feature/425-ut-non-strategic-publishing-clean
junaidiqbalmoj Jun 30, 2026
134a6cd
fix bug and read from blob storage
junaidiqbalmoj Jun 30, 2026
4439272
feat(ut): fix heading casing, update important information text, and …
junaidiqbalmoj Jun 30, 2026
b1da079
test: add missing coverage for UT list controllers, publication servi…
junaidiqbalmoj Jun 30, 2026
dad6849
refactor(ut): rename createUpperTribunalPdfGenerator to createUtDaily…
junaidiqbalmoj Jun 30, 2026
f17e84b
Merge master into feature/425-ut-non-strategic-publishing-clean, reso…
junaidiqbalmoj Jul 3, 2026
61b9087
remove link from UTAAC list to match OG CaTH
alao-daniel Jul 7, 2026
ecd5602
Merge remote-tracking branch 'origin/master' into feature/425-ut-non-…
alao-daniel Jul 7, 2026
a599179
update yarn file
alao-daniel Jul 7, 2026
0e69fcd
Merge branch 'master' into feature/425-ut-non-strategic-publishing-clean
junaidiqbalmoj Jul 8, 2026
8965698
fix refactoring issue
junaidiqbalmoj Jul 8, 2026
90df108
Merge branch 'master' into feature/425-ut-non-strategic-publishing-clean
junaidiqbalmoj Jul 8, 2026
08d5738
fix the build
junaidiqbalmoj Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,13 @@ npmScopes:
hmcts-cft:
npmRegistryServer: "https://pkgs.dev.azure.com/hmcts/Artifacts/_packaging/hmcts-lib/npm/registry/"
npmAlwaysAuth: true

supportedArchitectures:
os:
- current
- darwin
- linux
cpu:
- current
- arm64
- x64
2 changes: 1 addition & 1 deletion apps/postgres/prisma.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { defineConfig, env } from "prisma/config";

if (process.env.POSTGRES_HOST && process.env.POSTGRES_USER && process.env.POSTGRES_PASSWORD && process.env.POSTGRES_PORT && process.env.POSTGRES_DATABASE) {
const { POSTGRES_HOST, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_PORT, POSTGRES_DATABASE } = process.env;
process.env.DATABASE_URL = `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}?sslmode=require`;
process.env.DATABASE_URL = `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}?sslmode=require&connect_timeout=10`;
}

process.env.DATABASE_URL ??= "postgresql://hmcts@localhost:5433/postgres";
Expand Down

This file was deleted.

10 changes: 10 additions & 0 deletions apps/postgres/prisma/migrations/20260707090002/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- AddForeignKey
DO $$ BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.table_constraints
WHERE constraint_name = 'artefact_list_type_id_fkey'
AND table_name = 'artefact'
) THEN
ALTER TABLE "artefact" ADD CONSTRAINT "artefact_list_type_id_fkey" FOREIGN KEY ("list_type_id") REFERENCES "list_types"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
END IF;
END $$;
32 changes: 17 additions & 15 deletions apps/postgres/prisma/seed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,25 +40,26 @@ async function seedReferenceData() {
});
}
console.log(`Seeded ${locationData.jurisdictions.length} jurisdictions`);

console.log("Seeding sub-jurisdictions...");
for (const subJurisdiction of locationData.subJurisdictions) {
await prisma.subJurisdiction.upsert({
where: { subJurisdictionId: subJurisdiction.subJurisdictionId },
create: {
subJurisdictionId: subJurisdiction.subJurisdictionId,
name: subJurisdiction.name,
welshName: subJurisdiction.welshName,
jurisdictionId: subJurisdiction.jurisdictionId
},
update: { name: subJurisdiction.name, welshName: subJurisdiction.welshName, jurisdictionId: subJurisdiction.jurisdictionId }
});
}
console.log(`Seeded ${locationData.subJurisdictions.length} sub-jurisdictions`);
} else {
console.log("Skipping location seed: tables already contain data");
}

// Always upsert sub-jurisdictions to pick up new entries

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It says here "Always upsert sub-jurisdictions. We only upserting regions and jurisdictions when tables are empty. What are we doing one but not others?

console.log("Seeding sub-jurisdictions...");
for (const subJurisdiction of locationData.subJurisdictions) {
await prisma.subJurisdiction.upsert({
where: { subJurisdictionId: subJurisdiction.subJurisdictionId },
create: {
subJurisdictionId: subJurisdiction.subJurisdictionId,
name: subJurisdiction.name,
welshName: subJurisdiction.welshName,
jurisdictionId: subJurisdiction.jurisdictionId
},
update: { name: subJurisdiction.name, welshName: subJurisdiction.welshName, jurisdictionId: subJurisdiction.jurisdictionId }
});
}
console.log(`Seeded ${locationData.subJurisdictions.length} sub-jurisdictions`);

Comment on lines +47 to +62

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Reference seeding is still partially gated, so new location records can be missed.

Line 47 always upserts sub-jurisdictions, but regions/jurisdictions/locations are still gated by tablesEmpty (Lines 23 and 111). In non-empty environments, newly introduced UT reference rows are not inserted, leaving seeded data incomplete.

// Always run list type seeding to pick up new entries
console.log("Seeding list types...");
const allSubJurisdictions = await prisma.subJurisdiction.findMany();
Expand Down Expand Up @@ -222,6 +223,7 @@ async function main() {
console.log("Starting seed...");
await seedReferenceData();
await seedTestData();

console.log("Seed completed successfully!");
}

Expand Down
39 changes: 17 additions & 22 deletions apps/postgres/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,10 @@ if [ -d "/mnt/secrets" ]; then
if [ -d "$vault_dir" ]; then
for secret in "$vault_dir"*; do
name=$(basename "$secret")
# Skip CSI driver internal entries (start with ..)
case "$name" in
..*) continue ;;
esac
# Check for regular file or symlink pointing to a file
if [ -f "$secret" ] || [ -L "$secret" ]; then
# Verify it's not a symlink to a directory
if [ ! -d "$secret" ]; then
value=$(cat "$secret")
export "$name"="$value"
Expand All @@ -30,24 +27,22 @@ fi

echo "Resolving any failed migrations..."
printf "UPDATE _prisma_migrations SET rolled_back_at = NOW() WHERE finished_at IS NULL AND rolled_back_at IS NULL AND started_at IS NOT NULL;" | \
npx prisma db execute --stdin --config=./prisma.config.ts 2>/dev/null || true
npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts 2>/dev/null || true

echo "Clearing stale migration records for removed migrations..."
printf "DELETE FROM _prisma_migrations WHERE migration_name IN ('20260527140208', '20260528115459_add_third_party_push_log');" | \
npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts 2>/dev/null || true
Comment on lines 29 to +34

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Handle repair SQL failures explicitly rather than suppressing all errors.

Line 30 and Line 34 suppress stderr and force success with || true, which can silently skip migration-state repair on unexpected failures. Please only bypass the known “table not present yet” case and fail fast otherwise.

Suggested change
 echo "Resolving any failed migrations..."
-printf "UPDATE _prisma_migrations SET rolled_back_at = NOW() WHERE finished_at IS NULL AND rolled_back_at IS NULL AND started_at IS NOT NULL;" | \
-  npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts 2>/dev/null || true
-
-echo "Clearing stale migration records for removed migrations..."
-printf "DELETE FROM _prisma_migrations WHERE migration_name IN ('20260527140208', '20260528115459_add_third_party_push_log');" | \
-  npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts 2>/dev/null || true
+if npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts >/dev/null 2>&1 <<'SQL'
+SELECT 1 FROM _prisma_migrations LIMIT 1;
+SQL
+then
+  printf "UPDATE _prisma_migrations SET rolled_back_at = NOW() WHERE finished_at IS NULL AND rolled_back_at IS NULL AND started_at IS NOT NULL;" | \
+    npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts
+  echo "Clearing stale migration records for removed migrations..."
+  printf "DELETE FROM _prisma_migrations WHERE migration_name IN ('20260527140208', '20260528115459_add_third_party_push_log');" | \
+    npx --ignore-scripts prisma db execute --stdin --config=./prisma.config.ts
+else
+  echo "_prisma_migrations not initialised yet; skipping repair SQL."
+fi


echo "Running database migrations..."
npx prisma migrate deploy --config=./prisma.config.ts

if [ $? -eq 0 ]; then
echo "Migrations completed successfully"
echo "Starting health proxy on port 5555..."
node health-server.mjs &
HEALTH_PID=$!

echo "Starting Prisma Studio on port 5556..."
npx prisma studio --config=./prisma.config.ts --port 5556 --browser none &
STUDIO_PID=$!

# Wait for both processes
wait $HEALTH_PID $STUDIO_PID
else
echo "Migration failed, exiting..."
exit 1
fi
npx --ignore-scripts prisma migrate deploy --config=./prisma.config.ts

echo "Migrations completed successfully"
echo "Starting health proxy on port 5555..."
node health-server.mjs &
HEALTH_PID=$!

echo "Starting Prisma Studio on port 5556..."
npx --ignore-scripts prisma studio --config=./prisma.config.ts --port 5556 --browser none &
STUDIO_PID=$!

wait $HEALTH_PID $STUDIO_PID
3 changes: 3 additions & 0 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
"@hmcts/subscriptions": "workspace:*",
"@hmcts/system-admin-pages": "workspace:*",
"@hmcts/test-support": "workspace:*",
"@hmcts/upper-tribunal-administrative-appeals-chamber-daily-hearing-list": "workspace:*",
"@hmcts/upper-tribunal-lands-chamber-daily-hearing-list": "workspace:*",
"@hmcts/upper-tribunal-tax-and-chancery-chamber-daily-hearing-list": "workspace:*",
"@hmcts/web-core": "workspace:*",
"compression": "1.8.1",
"config": "4.4.2",
Expand Down
12 changes: 12 additions & 0 deletions apps/web/src/app.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,18 @@ vi.mock("@hmcts/care-standards-tribunal-weekly-hearing-list/config", () => ({
pageRoutes: { path: "/mock/care-standards-tribunal/pages" }
}));

vi.mock("@hmcts/upper-tribunal-tax-and-chancery-chamber-daily-hearing-list/config", () => ({
moduleRoot: "/mock/utcc"
}));

vi.mock("@hmcts/upper-tribunal-lands-chamber-daily-hearing-list/config", () => ({
moduleRoot: "/mock/utlc"
}));

vi.mock("@hmcts/upper-tribunal-administrative-appeals-chamber-daily-hearing-list/config", () => ({
moduleRoot: "/mock/utaac"
}));

vi.mock("@hmcts/civil-and-family-daily-cause-list/config", () => ({
moduleRoot: "/mock/civil-family",
pageRoutes: { path: "/mock/civil-family/pages" }
Expand Down
6 changes: 6 additions & 0 deletions apps/web/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ import {
moduleRoot as systemAdminModuleRoot,
pages as systemAdminPages
} from "@hmcts/system-admin-pages/config";
import { moduleRoot as utaacModuleRoot } from "@hmcts/upper-tribunal-administrative-appeals-chamber-daily-hearing-list/config";
import { moduleRoot as utlcModuleRoot } from "@hmcts/upper-tribunal-lands-chamber-daily-hearing-list/config";
import { moduleRoot as utccModuleRoot } from "@hmcts/upper-tribunal-tax-and-chancery-chamber-daily-hearing-list/config";
import { moduleRoot as utiacJrModuleRoot } from "@hmcts/utiac-jr-daily-hearing-list/config";
import { moduleRoot as utiacStatutoryAppealModuleRoot } from "@hmcts/utiac-statutory-appeal-daily-hearing-list/config";
import {
Expand Down Expand Up @@ -115,6 +118,9 @@ export async function createApp(): Promise<Express> {
fttTaxChamberModuleRoot,
fttLrtModuleRoot,
fttRptModuleRoot,
utccModuleRoot,
utlcModuleRoot,
utaacModuleRoot,
civilFamilyCauseListModuleRoot,
civilDailyCauseListModuleRoot,
familyDailyCauseListModuleRoot,
Expand Down
24 changes: 12 additions & 12 deletions apps/web/src/pages/(admin)/non-strategic-upload-summary/cy.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
export const cy = {
pageTitle: "[Welsh] Non-strategic upload - File upload summary - Court and tribunal hearings - GOV.UK",
heading: "[Welsh] File upload summary",
subHeading: "[Welsh] Check upload details",
courtName: "[Welsh] Court name",
file: "[Welsh] File",
listType: "[Welsh] List type",
hearingStartDate: "[Welsh] Hearing start date",
sensitivity: "[Welsh] Sensitivity",
language: "[Welsh] Language",
displayFileDates: "[Welsh] Display file dates",
change: "[Welsh] Change",
confirmButton: "[Welsh] Confirm"
pageTitle: "Llwytho i fyny â llaw - Crynodeb lanlwytho ffeil - Gwrandawiadau llys a thribiwnlys - GOV.UK",
heading: "Crynodeb lanlwytho ffeil",
subHeading: "Gwirio manylion lanlwytho",
courtName: "Enw'r llys",
file: "Ffeil",
listType: "Math o restr",
hearingStartDate: "Dyddiad cychwyn y gwrandawiad",
sensitivity: "Sensitifrwydd",
language: "Iaith",
displayFileDates: "Dangos dyddiadau ffeil",
change: "Newid",
confirmButton: "Cadarnhau"
};
106 changes: 53 additions & 53 deletions apps/web/src/pages/(admin)/non-strategic-upload/cy.ts
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
export const cy = {
title: "[Welsh] Upload Excel file",
pageTitle: "[Welsh] Upload - Upload Excel file",
warningTitle: "[Welsh] Warning",
warningMessage:
"[Welsh] Prior to upload you must ensure the file is suitable for publication e.g. redaction of personal data has been done during the production of this file.",
fileUploadLabel: "[Welsh] Manually upload an Excel file (.xlsx), max size 2MB",
courtLabel: "[Welsh] Court name or Tribunal name",
listTypeLabel: "[Welsh] List type",
listTypePlaceholder: "[Welsh] Please choose a list type",
hearingStartDateLabel: "[Welsh] Hearing start date",
hearingStartDateHint: "[Welsh] For example, 16 01 2022",
sensitivityLabel: "[Welsh] Sensitivity",
languageLabel: "[Welsh] Language",
displayFromLabel: "[Welsh] Display file from",
displayFromHint: "[Welsh] For example, 27 01 2022",
displayToLabel: "[Welsh] Display file to",
displayToHint: "[Welsh] For example, 18 02 2022",
continueButton: "[Welsh] Continue",
errorSummaryTitle: "[Welsh] There is a problem",
pageHelpTitle: "[Welsh] Page help",
pageHelpLists: "[Welsh] Lists",
title: "Llwytho â llaw",
pageTitle: "Llwytho - Llwytho â llaw",
warningTitle: "Rhybudd",
warningMessage: "Cyn llwytho rhaid i chi sicrhau bod y ffeil yn addas i'w chyhoeddi e.e. bod data personol wedi'i olygu yn ystod cynhyrchu'r ffeil hon.",
fileUploadLabel: "Llwytho ffeil Excel (.xlsx) â llaw, uchafswm maint 2MB",
courtLabel: "Enw'r llys neu enw'r tribiwnlys",
listTypeLabel: "Math o restr",
listTypePlaceholder: "Dewiswch fath o restr",
hearingStartDateLabel: "Dyddiad dechrau'r gwrandawiad",
hearingStartDateHint: "Er enghraifft, 16 01 2022",
sensitivityLabel: "Sensitifrwydd",
languageLabel: "Iaith",
displayFromLabel: "Dangos y ffeil o",
displayFromHint: "Er enghraifft, 27 01 2022",
displayToLabel: "Dangos y ffeil tan",
displayToHint: "Er enghraifft, 18 02 2022",
continueButton: "Parhau",
errorSummaryTitle: "Mae yna broblem",
pageHelpTitle: "Cymorth tudalen",
pageHelpLists: "Rhestrau",
pageHelpListsText:
"[Welsh] You must ensure that you only upload one file that contains all hearings for the Court or Tribunal name and List type. This should include all judges and court rooms in one document.",
pageHelpSensitivity: "[Welsh] Sensitivity",
pageHelpSensitivityText: "[Welsh] You need to indicate which user group your document should be available to:",
pageHelpSensitivityPublic: "[Welsh] Public",
pageHelpSensitivityPublicText: "[Welsh] Publication available to all users.",
pageHelpSensitivityPrivate: "[Welsh] Private",
pageHelpSensitivityPrivateText: "[Welsh] Publication available to all verified users e.g. Legal professionals and media.",
pageHelpSensitivityClassified: "[Welsh] Classified",
"Rhaid i chi sicrhau eich bod chi ond yn llwytho un ffeil sy'n cynnwys yr holl wrandawiadau ar gyfer enw'r Llys neu'r Tribiwnlys a'r math o restr. Dylai hyn gynnwys pob barnwr ac ystafell lys mewn un ddogfen.",
pageHelpSensitivity: "Sensitifrwydd",
pageHelpSensitivityText: "Mae angen i chi nodi pa grŵp defnyddwyr y dylai eich dogfen fod ar gael iddynt:",
pageHelpSensitivityPublic: "Cyhoeddus",
pageHelpSensitivityPublicText: "Cyhoeddiad ar gael i bob defnyddiwr.",
pageHelpSensitivityPrivate: "Preifat",
pageHelpSensitivityPrivateText: "Cyhoeddiad ar gael i bob defnyddiwr wedi'u dilysu e.e. Gweithwyr proffesiynol cyfreithiol a'r cyfryngau.",
pageHelpSensitivityClassified: "Dosbarthedig",
pageHelpSensitivityClassifiedText:
"[Welsh] Publication only available to verified users who are in a group eligible to view that list e.g. SJP press list available to Media.",
pageHelpDisplayFrom: "[Welsh] Display from",
pageHelpDisplayFromText: "[Welsh] This will be the date the publication is available from … displayed immediately if today's date is used.",
pageHelpDisplayTo: "[Welsh] Display to",
pageHelpDisplayToText: "[Welsh] This will be the last date the publication is available. It will be displayed until 23:59 of that date.",
dayLabel: "[Welsh] Day",
monthLabel: "[Welsh] Month",
yearLabel: "[Welsh] Year",
backToTop: "[Welsh] Back to top",
"Cyhoeddiad ar gael i ddefnyddwyr wedi'u dilysu sydd mewn grŵp sy'n gymwys i weld y rhestr honno e.e. Rhestr y wasg SJP ar gael i'r Cyfryngau",
pageHelpDisplayFrom: "Dangos o",
pageHelpDisplayFromText:
"Hwn fydd y dyddiad y bydd y cyhoeddiad ar gael ohono, os defnyddir dyddiad heddiw bydd yn cael ei ddangos ar unwaith. Os defnyddir dyddiad yn y dyfodol, bydd yn cael ei ddangos o 00:01 ar y dyddiad hwnnw.",
pageHelpDisplayTo: "Dangos tan",
pageHelpDisplayToText: "Hwn fydd y dyddiad olaf y bydd y cyhoeddiad ar gael. Bydd yn cael ei ddangos tan 23:59 ar y dyddiad hwnnw.",
dayLabel: "Diwrnod",
monthLabel: "Mis",
yearLabel: "Blwyddyn",
backToTop: "Nôl i'r brig",

errorMessages: {
fileRequired: "[Welsh] Please provide a file",
fileType: "[Welsh] The selected file type is not supported",
fileSize: "[Welsh] The selected file must be smaller than 2MB",
courtRequired: "[Welsh] Please enter and select a valid court",
courtTooShort: "[Welsh] Court name must be three characters or more",
listTypeRequired: "[Welsh] Please select a list type",
hearingStartDateRequired: "[Welsh] Please enter a valid hearing start date",
hearingStartDateInvalid: "[Welsh] Please enter a valid hearing start date",
sensitivityRequired: "[Welsh] Please select a sensitivity",
languageRequired: "[Welsh] Select a language option",
displayFromRequired: "[Welsh] Please enter a valid display file from date",
displayFromInvalid: "[Welsh] Please enter a valid display file from date",
displayToRequired: "[Welsh] Please enter a valid display file to date",
displayToInvalid: "[Welsh] Please enter a valid display file to date",
displayToBeforeFrom: "[Welsh] 'Display to' date must be the same as or later than 'Display from' date"
fileRequired: "Darparwch ffeil",
fileType: "Llwythwch fformat ffeil dilys",
fileSize: "Ffeil yn rhy fawr, llwythwch ffeil yn llai na 2MB",
courtRequired: "Rhowch a dewiswch lys dilys",
courtTooShort: "Rhaid i enw'r llys fod yn dri chymeriad neu fwy",
listTypeRequired: "Dewiswch fath o restr",
hearingStartDateRequired: "Rhowch ddyddiad dechrau gwrandawiad dilys",
hearingStartDateInvalid: "Rhowch ddyddiad dechrau gwrandawiad dilys",
sensitivityRequired: "Dewiswch lefel sensitifrwydd",
languageRequired: "Dewiswch iaith",
displayFromRequired: "Rhowch ddyddiad dangos y ffeil o dilys",
displayFromInvalid: "Rhowch ddyddiad dangos y ffeil o dilys",
displayToRequired: "Rhowch ddyddiad dangos y ffeil tan dilys",
displayToInvalid: "Rhowch ddyddiad dangos y ffeil tan dilys",
displayToBeforeFrom: "Rhaid i'r dyddiad dangos tan fod ar ôl y dyddiad dangos o"
}
};
2 changes: 1 addition & 1 deletion apps/web/src/pages/(admin)/non-strategic-upload/index.njk
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@

<h1 class="govuk-heading-xl">{{ title }}</h1>

<form method="post" enctype="multipart/form-data" novalidate>
<form method="post" enctype="multipart/form-data" novalidate data-list-type-sensitivity="{{ listTypeSensitivityMap }}">

{% set fileErrorText = getError(errors, "#file") %}
<div class="govuk-inset-text">
Expand Down
Loading
Loading