diff --git a/.gitea/workflows/ui-regression.yml b/.gitea/workflows/ui-regression.yml index 0f4fc96..fb1917a 100644 --- a/.gitea/workflows/ui-regression.yml +++ b/.gitea/workflows/ui-regression.yml @@ -56,6 +56,19 @@ jobs: working-directory: playwright-smoke run: pnpm exec tsc -p tsconfig.json --noEmit + - name: Build frontend package + working-directory: frontend + env: + PUBLIC_API_BASE_URL: http://127.0.0.1:5159/api + run: pnpm build + + - name: Build admin package + working-directory: admin + env: + VITE_API_BASE: http://127.0.0.1:5159 + VITE_FRONTEND_BASE_URL: http://127.0.0.1:4321 + run: pnpm build + - name: Prepare Playwright artifact folders run: | rm -rf playwright-smoke/.artifacts @@ -66,6 +79,8 @@ jobs: id: ui_frontend working-directory: playwright-smoke continue-on-error: true + env: + PLAYWRIGHT_USE_BUILT_APP: '1' run: pnpm test:frontend - name: Collect frontend Playwright artifacts @@ -83,6 +98,8 @@ jobs: id: ui_admin working-directory: playwright-smoke continue-on-error: true + env: + PLAYWRIGHT_USE_BUILT_APP: '1' run: pnpm test:admin - name: Collect admin Playwright artifacts diff --git a/admin/src/App.tsx b/admin/src/App.tsx index d864be7..32f6e1f 100644 --- a/admin/src/App.tsx +++ b/admin/src/App.tsx @@ -94,6 +94,10 @@ const WorkersPage = lazy(async () => { const mod = await import('@/pages/workers-page') return { default: mod.WorkersPage } }) +const AuditPage = lazy(async () => { + const mod = await import('@/pages/audit-page') + return { default: mod.AuditPage } +}) type SessionContextValue = { session: AdminSessionResponse @@ -397,6 +401,14 @@ function AppRoutes() { } /> + + + + } + /> { - const formData = await request.formData().catch(() => null) - const code = String(formData?.get('code') ?? '').trim() - const returnTo = sanitizeMaintenanceReturnTo(String(formData?.get('returnTo') ?? '/')) + const contentType = request.headers.get('content-type') ?? '' + let code = '' + let returnTo = '/' + + if (contentType.includes('application/json')) { + const payload = (await request.json().catch(() => ({}))) as { + code?: unknown + returnTo?: unknown + } + code = String(payload.code ?? '').trim() + returnTo = sanitizeMaintenanceReturnTo(String(payload.returnTo ?? '/')) + } else { + const formData = await request.formData().catch(() => null) + code = String(formData?.get('code') ?? '').trim() + returnTo = sanitizeMaintenanceReturnTo(String(formData?.get('returnTo') ?? '/')) + } if (!code) { return redirect(`/maintenance?error=empty&returnTo=${encodeURIComponent(returnTo)}`, 302) diff --git a/frontend/src/pages/maintenance.astro b/frontend/src/pages/maintenance.astro index 0675a51..250db42 100644 --- a/frontend/src/pages/maintenance.astro +++ b/frontend/src/pages/maintenance.astro @@ -62,7 +62,12 @@ const errorMessage = )} -
+