Commit Graph

  • 9718e27029 feat: registration form field display_width and option descriptions bert.hausmans 2026-04-16 07:46:36 +02:00
  • c4a23b6763 feat: passwordless registration — defer account creation to approval bert.hausmans 2026-04-16 03:27:47 +02:00
  • 0221e7f6d3 fix: move impersonation banner inside layout content flow bert.hausmans 2026-04-16 03:17:13 +02:00
  • dc886fed46 fix: impersonation banner still overlapping navbar bert.hausmans 2026-04-16 03:14:01 +02:00
  • 89645eab60 fix: impersonation banner overlapping sidebar and navbar bert.hausmans 2026-04-16 02:58:27 +02:00
  • fcab30e5e8 fix: portal shows stale events from localStorage after user_id unlinked bert.hausmans 2026-04-16 02:54:36 +02:00
  • 67ce1e9d9d fix: impersonation UX — banner contrast, route blocking, nav filtering bert.hausmans 2026-04-16 02:51:50 +02:00
  • 4df668b5b8 feat: replace token-based impersonation with enterprise-grade header-based system bert.hausmans 2026-04-16 02:42:53 +02:00
  • 47cb6b83d4 refactor: organisation settings — vertical sidebar layout with grouped sections bert.hausmans 2026-04-16 02:10:50 +02:00
  • 50e2c31dd9 fix: MFA verify succeeds but user stuck on challenge screen bert.hausmans 2026-04-16 01:49:01 +02:00
  • f1a8591d17 fix: critical MFA bypass — old auth tokens survive MFA challenge bert.hausmans 2026-04-15 23:49:51 +02:00
  • 63a13c0ce9 fix: setupTotp() clobbering mfa_confirmed_at breaks login MFA check bert.hausmans 2026-04-15 23:02:37 +02:00
  • a9c84ee0a6 refactor: password change form layout — current password full width bert.hausmans 2026-04-15 22:54:50 +02:00
  • 554ed68e8b refactor: remove redundant cancel button from password change form bert.hausmans 2026-04-15 22:53:22 +02:00
  • 0cdee1382e refactor: improve MFA section visual hierarchy in SecurityTab bert.hausmans 2026-04-15 22:51:54 +02:00
  • d5fb15e5fe feat: set preferred MFA method from account settings bert.hausmans 2026-04-15 22:47:34 +02:00
  • a77986334c fix: remove duplicate header on organisation crowd-types page bert.hausmans 2026-04-15 22:34:50 +02:00
  • 34cc57ac51 fix: remove duplicate header on organisation tags page bert.hausmans 2026-04-15 22:34:36 +02:00
  • 49f7944e34 feat: show active organisation name as sidebar section title bert.hausmans 2026-04-15 22:33:32 +02:00
  • 9f19c9ed37 feat: move organisation members to sidebar, drop tabs on org page bert.hausmans 2026-04-15 22:31:21 +02:00
  • c62f377668 fix: MFA setup completion not updating UI state bert.hausmans 2026-04-15 22:30:58 +02:00
  • 4e6d5eb4aa feat: move tags and crowd types to sidebar from org settings tabs bert.hausmans 2026-04-15 22:30:12 +02:00
  • 79b7fe0b42 feat: account settings with Vuexy tab pattern and MFA banner fix bert.hausmans 2026-04-15 22:18:16 +02:00
  • cd2c775692 fix: eliminate all TypeScript any usage across Vue components bert.hausmans 2026-04-15 21:54:01 +02:00
  • 0be2956ea4 feat: MFA frontend with auth page restyling, challenge screen, and setup wizard bert.hausmans 2026-04-15 21:32:17 +02:00
  • a9e8e9bb62 docs: enforce correct Vuexy reference path in CLAUDE.md and .cursorrules bert.hausmans 2026-04-15 21:01:45 +02:00
  • 948687f27e feat: enterprise MFA with TOTP, email codes, backup codes, and trusted devices bert.hausmans 2026-04-15 20:45:55 +02:00
  • df68aa8aef feat: email infrastructure frontend — settings, templates, and log tabs bert.hausmans 2026-04-15 20:28:38 +02:00
  • 65978104d8 feat: complete email infrastructure with queue, templates, logging, and API bert.hausmans 2026-04-15 20:12:21 +02:00
  • c64875b6ef feat: align Vuexy primary with demo teal (rgb 13,147,148) bert.hausmans 2026-04-15 19:43:14 +02:00
  • 15be8a09c6 fix: remove duplicate 'Powered by Crewli' footer on registration pages bert.hausmans 2026-04-15 08:52:38 +02:00
  • 28727f246b chore: remove admin SPA and update to two-app production setup bert.hausmans 2026-04-15 08:44:10 +02:00
  • 945e22f322 docs: remove admin SPA references and update production URLs bert.hausmans 2026-04-15 08:21:44 +02:00
  • 2933d957a6 feat: add create organisation button and dialog on platform page bert.hausmans 2026-04-15 01:27:40 +02:00
  • 66e4167c03 refactor: identical VDataTable for members on both organisation pages bert.hausmans 2026-04-15 01:22:01 +02:00
  • ca275723db fix: use consistent text-body-1 text-disabled for timestamps bert.hausmans 2026-04-15 01:16:29 +02:00
  • c7dd6aa59c fix: slug in parentheses, capitalize status, lighter timestamps, rename button bert.hausmans 2026-04-15 01:15:16 +02:00
  • 1629b514e2 fix: unify date formatting and add missing updated_at timestamp bert.hausmans 2026-04-15 01:13:22 +02:00
  • 1e5aa3c06b fix: align organisation page header layout with platform design bert.hausmans 2026-04-15 01:10:25 +02:00
  • c1bacb5ee9 refactor: show organisation slug after name in header bert.hausmans 2026-04-15 01:08:31 +02:00
  • b69d7c9488 Revert "refactor: show event slug after name in header" bert.hausmans 2026-04-15 01:07:17 +02:00
  • 13ea2304b3 refactor: show event slug after name in header bert.hausmans 2026-04-15 01:06:05 +02:00
  • 9923dab0f8 refactor: move KPI cards into Algemeen tab, Danger Zone into own tab bert.hausmans 2026-04-15 01:04:42 +02:00
  • a8a2bc92d1 feat: refactor organisation pages with tabs, members tab, and danger zone bert.hausmans 2026-04-15 00:59:45 +02:00
  • f2614f2b48 feat: platform admin member management — invite, remove, role update bert.hausmans 2026-04-15 00:37:29 +02:00
  • b6ef6ec383 fix: login response missing app_roles — platform nav not showing bert.hausmans 2026-04-15 00:18:19 +02:00
  • 9e7f28420c feat: platform admin frontend — pages, composables, navigation, impersonation bert.hausmans 2026-04-14 23:49:36 +02:00
  • 07ba791405 docs: complete event statuses documentation page bert.hausmans 2026-04-14 23:44:13 +02:00
  • ddf26dad33 feat: platform admin backend — controllers, services, routes, tests bert.hausmans 2026-04-14 23:33:16 +02:00
  • ec31646a93 fix: shift dialog info alert layout and full-width toggle bert.hausmans 2026-04-14 22:58:33 +02:00
  • 103d57c979 refactor: polish shift dialog with Vuexy-style alert and sticky footer bert.hausmans 2026-04-14 22:54:47 +02:00
  • 8afee801f8 feat: make shift dialog time-slot help collapsible bert.hausmans 2026-04-14 22:47:20 +02:00
  • 1c3ce547fa refactor: polish shift create dialog layout and hierarchy bert.hausmans 2026-04-14 22:45:12 +02:00
  • 1c6aed71fe fix: replace InfoTooltip v-tooltip with v-menu popover card bert.hausmans 2026-04-14 22:41:01 +02:00
  • cc7cbbf29d fix: use inline style for time slot dimming in teleported dropdown bert.hausmans 2026-04-14 22:37:48 +02:00
  • 948965e664 fix: time slot dropdown group headers and dimming via boundary detection bert.hausmans 2026-04-14 22:31:32 +02:00
  • 5bd028f408 refactor(app): event header status menu and volunteer share dialog bert.hausmans 2026-04-14 22:19:09 +02:00
  • 7bc0f1a0c7 feat: fix time slot hierarchy — seeder, API include_children, frontend dropdown, navigation bert.hausmans 2026-04-14 22:07:37 +02:00
  • acb7fb2c3a fix: show event_type_label on events list cards bert.hausmans 2026-04-14 21:51:08 +02:00
  • c4712cea77 feat: edit event type label in dialog, drop non-functional status field bert.hausmans 2026-04-14 21:48:07 +02:00
  • eec222d423 feat: toon leeftijd naast geboortedatum in persoon-detailpanel bert.hausmans 2026-04-14 21:41:08 +02:00
  • cb16cf9091 fix: cross_event section shifts use festival-level time slots in seeder bert.hausmans 2026-04-14 21:02:53 +02:00
  • cf02500453 fix: shift edit time slot dropdown loading state and test coverage bert.hausmans 2026-04-14 20:46:36 +02:00
  • ea159a34fe docs: add development prompts and vibe coding checklist bert.hausmans 2026-04-14 19:04:19 +02:00
  • 11e379a5b9 feat: add useShiftDetailStore for shift detail panel state bert.hausmans 2026-04-14 19:04:17 +02:00
  • 185637fa50 feat: add EmailBrandingTab component for organisation email branding bert.hausmans 2026-04-14 19:04:13 +02:00
  • ae7ba63822 feat: add PersonStatus enum and PortalMeRequest form request bert.hausmans 2026-04-14 19:04:10 +02:00
  • 312663fb02 chore: update admin typed-router definitions bert.hausmans 2026-04-14 19:04:06 +02:00
  • f1b92531c4 chore: update .gitignore and remove obsolete corporate identity assets bert.hausmans 2026-04-14 19:04:03 +02:00
  • 3e93048461 docs: update BACKLOG.md with current project status bert.hausmans 2026-04-14 18:50:55 +02:00
  • a29fa32ac6 feat: add "Lid toevoegen als deelnemer" shortcut for org members bert.hausmans 2026-04-14 18:38:53 +02:00
  • 624756e505 docs: add user documentation for core organizer concepts bert.hausmans 2026-04-14 18:30:23 +02:00
  • ed1eddd486 fix: allow organiser to approve shift assignments when shift is full bert.hausmans 2026-04-14 17:42:04 +02:00
  • a9ef384515 fix: prevent cross-app auth session sharing on localhost bert.hausmans 2026-04-14 17:19:42 +02:00
  • 821bfc5bcf chore: standardize dev-only debug logging across all three SPAs bert.hausmans 2026-04-14 16:43:31 +02:00
  • e53f364929 fix: guard against Pinia not ready in admin router (plugin load order) bert.hausmans 2026-04-14 16:36:43 +02:00
  • 887a8fccde chore: move VitePress dev server to port 5176 (avoid admin port conflict) bert.hausmans 2026-04-14 16:31:23 +02:00
  • 8ace0480ae fix: handle 401 gracefully in auth initialization after httpOnly migration bert.hausmans 2026-04-14 16:24:58 +02:00
  • b5fcb7c14a fix: add Google Fonts domains to CSP policy bert.hausmans 2026-04-14 16:20:51 +02:00
  • 940297f214 security: implement CSP headers (API middleware + Nginx configs + dev meta tags) bert.hausmans 2026-04-14 16:14:37 +02:00
  • 513ca519b2 security: migrate auth tokens to httpOnly cookies (hybrid bearer token approach) bert.hausmans 2026-04-14 16:06:44 +02:00
  • 836cffa232 feat: password reset, email change with verification, and password change bert.hausmans 2026-04-14 15:38:54 +02:00
  • 53100d4f6d feat: portal cross-event my-shifts endpoint and dashboard page bert.hausmans 2026-04-14 15:07:08 +02:00
  • d4004c798c feat: show identity match hint on registration success page bert.hausmans 2026-04-14 08:56:25 +02:00
  • eb1a0ac666 feat: complete person identity matching system with fuzzy detection, revert, and manual link bert.hausmans 2026-04-14 08:44:24 +02:00
  • 7932e53daf security: A01-13 — nest all event routes under organisation prefix bert.hausmans 2026-04-14 08:16:36 +02:00
  • 51e5dd6fcb security: comprehensive security regression test suite bert.hausmans 2026-04-14 07:25:47 +02:00
  • b8286d6a84 security: round 4 — frontend hardening (deps, XSS, cookie security) bert.hausmans 2026-04-14 07:15:00 +02:00
  • 52f6380ac0 security: round 3 — token security (crypto random, hashed storage, portal middleware) bert.hausmans 2026-04-14 06:52:54 +02:00
  • 090d2b7d89 security: round 2 — multi-tenancy isolation (OrganisationScope, scoped validation, boundary checks) bert.hausmans 2026-04-14 06:38:19 +02:00
  • 1028498705 security: round 1 — quick wins (rate limiting, headers, mass assignment, logging) bert.hausmans 2026-04-14 01:34:51 +02:00
  • 72120969c6 docs: add Vuexy-first strategy and frontend conventions to CLAUDE.md bert.hausmans 2026-04-14 01:27:44 +02:00
  • 971adc040a docs: generate Vuexy component registry for frontend reference bert.hausmans 2026-04-14 01:23:47 +02:00
  • da2b9ee9e7 docs: migrate frontend conventions from .cursorrules to CLAUDE.md bert.hausmans 2026-04-14 01:07:23 +02:00
  • ef195a6777 feat(mail): center-align action button in email template bert.hausmans 2026-04-14 00:49:41 +02:00
  • 172a6a12d3 feat(mail): improve email template header and button styling bert.hausmans 2026-04-13 23:18:57 +02:00
  • ab3e26edfc feat(app): enable semi-dark vertical navigation sidebar bert.hausmans 2026-04-13 23:16:35 +02:00
  • f9faeb7ea0 feat(portal): restructure into three-screen architecture with event tabs bert.hausmans 2026-04-13 13:30:20 +02:00
  • 2d7464e05b feat(portal): horizontal navbar layout with avatar menu and profile restructuring bert.hausmans 2026-04-13 12:44:21 +02:00
  • 59ad09fad2 feat(portal): auth persistence, shift visibility, profile page, and UI polish bert.hausmans 2026-04-13 10:19:14 +02:00