|
|
4b2173cb84
|
Secure cookie flags + CSRF for our own POST forms (todo §4); SECURE_COOKIES toggle on session/CSRF cookies; csrf.ts signed double-submit token + body.ts form reader; logout is now a CSRF-guarded POST form
|
2026-06-18 11:12:32 +02:00 |
|
|
|
dec55f85a6
|
Logout (todo §4); GET /logout clears plainpages_jwt + revokes the Kratos session (createLogoutFlow → redirect to Kratos logout URL → /login); wire shell Sign out link
|
2026-06-18 10:35:07 +02:00 |
|
|
|
26a7821611
|
Render SSO buttons per configured Kratos OIDC provider (todo §4); flow-view collects oidc nodes → auth-card submit buttons, server-side visibility, drop mockup #sso-toggle CSS
|
2026-06-17 18:20:45 +02:00 |
|
|
|
0928f9dd39
|
Render Kratos self-service flows as themed pages (todo §4); buildFlowView + views/auth.ejs + login/registration/recovery/verification/settings routes
|
2026-06-17 17:55:56 +02:00 |
|
|
|
ff7b55be4c
|
Wire branding into the app shell (todo §2); render config logo + default theme, fall back to the brand mark
|
2026-06-16 16:07:24 +02:00 |
|
|
|
645a316419
|
Make markup semantic + add semantic DOM principle (todo §1); page <h1>, skip link, row-header <th scope=row>, descriptive error pages
|
2026-06-15 16:53:07 +02:00 |
|
|
|
947851b4ff
|
Replace placeholder index with the app-shell People dashboard (todo §1); wire parseListQuery/paginate/composeNav + partials into a real zero-JS list page
|
2026-06-15 15:57:42 +02:00 |
|
|
|
bddc1f891d
|
Add menu/popover + theme-switch partials (todo §1); data-driven .menu (items/check-groups/positioning), Light/Auto/Dark switch, shell reuses both
|
2026-06-15 13:27:44 +02:00 |
|
|
|
7716e38d84
|
Add field + auth-card partials (todo §1); data-driven .field (label/icon/hint/server error) and auth-card shell (head/SSO/body/alt)
|
2026-06-15 13:16:36 +02:00 |
|
|
|
fcf2abdf17
|
Add data-driven pagination partial (todo §1); rows-per-page GET form + page-number links, zero-JS, query-param driven
|
2026-06-15 13:10:24 +02:00 |
|
|
|
cf1b74f09d
|
Add data-driven data-table partial (todo §1); sortable header links, row-select, typed cells/badges, kebab actions
|
2026-06-15 13:04:19 +02:00 |
|
|
|
637d5cf66d
|
Add data-driven filter-bar partial (todo §1); GET form: search/segmented/select/chips/daterange + applied pills
|
2026-06-15 12:04:25 +02:00 |
|
|
|
67743cad23
|
Add recursive nav-tree partial (todo §1); header/leaf × clickable/static, counts + aria-current
|
2026-06-15 11:59:26 +02:00 |
|
|
|
672b831f8c
|
Add app-shell partial (todo §1); sidebar + topbar + content/nav slots, reuses mockup classes + icon sprite
|
2026-06-15 11:51:44 +02:00 |
|
|
|
265704a7eb
|
Add lucide icon sprite partial (todo §1); src/icons.ts generates only-used symbols from pinned lucide-static
|
2026-06-15 11:44:40 +02:00 |
|
|
|
4eed701419
|
Scaffold Docker-only Node 24 + TypeScript EJS web backend
|
2026-06-14 11:45:30 +02:00 |
|