Zaid Marzguioui
7cfd88f1c3
feat(finance): add SEPA batch actions — populate, manual add, XML download
...
Workflow / ʦ TypeScript (push) Failing after 4m54s
Workflow / ⚫️ Test (push) Has been skipped
The SEPA batch detail page was a dead end: users could create a batch
but had no way to add payment positions or generate the XML file.
Added SepaBatchActions client component with three key workflows:
1. 'Mitglieder hinzufügen' — auto-populates batch from all active
members who have a SEPA mandate and dues category (calls existing
populateBatchFromMembers server action)
2. 'Einzelposition' — dialog to manually add a single debit item
with Name, IBAN, Amount, and Verwendungszweck fields
3. 'XML herunterladen' — dialog for creditor info (Gläubiger-Name,
IBAN, BIC, Gläubiger-ID) then generates and triggers download of
the SEPA pain.008 XML file. Disabled when batch has 0 positions.
Also fixed: SEPA list page crashed because a Server Component had an
onClick handler on a <tr> — removed the invalid event handler.
Target demographic: German association treasurers (Kassenwarte) who
need a straightforward workflow for annual membership fee collection
via SEPA Lastschrift.
2026-04-03 22:47:35 +02:00
Zaid Marzguioui
0932c57fa1
fix: revert ctx→_ctx rename — ctx IS used for auth in server actions
...
Workflow / ʦ TypeScript (push) Failing after 6m13s
Workflow / ⚫️ Test (push) Has been skipped
The previous lint fix incorrectly renamed ctx to _ctx in server actions
that actually USE ctx.user.id for authorization. This caused runtime
'ctx is not defined' errors when creating pages, modules, etc.
Reverted all 13 action files back to using ctx properly.
2026-04-02 19:30:59 +02:00
Zaid Marzguioui
0bd5d0cf42
fix: QA audit — lint cleanup, i18n fixes, module visibility, sidebar UX
...
Workflow / ʦ TypeScript (push) Failing after 5m40s
Workflow / ⚫️ Test (push) Has been skipped
- Fix 97 lint errors → 0 (unused imports, params, variables across 40+ files)
- Fix i18n key format: colon → dot notation for next-intl compatibility
- Add missing i18n keys (routes.application, routes.home, confirm)
- Fix module visibility: sidebar now respects per-account DB features
- Fix inject function: use dot-notation keys, add collapsed:true defaults
- Fix ConfirmDialog: use useTranslations instead of hardcoded German defaults
- Fix events page: replace placeholder 'Beschreibung' with proper description
- Fix Dockerfile: add NEXT_PUBLIC_CI ARG for Docker builds
- Collapse secondary sidebar sections by default for cleaner UX
2026-04-02 14:39:20 +02:00
Zaid Marzguioui
b26e5aaafa
feat: pre-existing local changes — fischerei, verband, modules, members, packages
...
Workflow / ʦ TypeScript (push) Failing after 6m20s
Workflow / ⚫️ Test (push) Has been skipped
Commits all remaining uncommitted local work:
- apps/web: fischerei, verband, modules, members-cms, documents,
newsletter, meetings, site-builder, courses, bookings, events,
finance pages and components
- apps/web: marketing page updates, layout, paths config,
next.config.mjs, styles/makerkit.css
- apps/web/i18n: documents, fischerei, marketing, verband (de+en)
- packages/features: finance, fischerei, member-management,
module-builder, newsletter, sitzungsprotokolle, verbandsverwaltung
server APIs and components
- packages/ui: button.tsx updates
- pnpm-lock.yaml
2026-04-02 01:19:54 +02:00
T. Zehetbauer
7b078f298b
feat: enhance API response handling and add new components for module management
Workflow / ʦ TypeScript (push) Failing after 4m50s
Workflow / ⚫️ Test (push) Has been skipped
2026-04-01 15:18:24 +02:00
T. Zehetbauer
abac22feb1
feat: enhance accessibility and testing with data-test attributes and improve error handling
Workflow / ⚫️ Test (push) Has been cancelled
Workflow / ʦ TypeScript (push) Has been cancelled
2026-04-01 10:46:44 +02:00
T. Zehetbauer
59546ad6d2
Add account hierarchy framework with migrations, RLS policies, and UI components
2026-03-31 22:18:04 +02:00
Zaid Marzguioui
1294caa7fa
feat: MyEasyCMS v2 — Full SaaS rebuild
...
Workflow / ⚫️ Test (push) Has been cancelled
Workflow / ʦ TypeScript (push) Has been cancelled
Complete rebuild of 22-year-old PHP CMS as modern SaaS:
Database (15 migrations, 42+ tables):
- Foundation: account_settings, audit_log, GDPR register, cms_files
- Module Engine: modules, fields, records, permissions, relations + RPC
- Members: 45+ field member profiles, departments, roles, honors, SEPA mandates
- Courses: courses, sessions, categories, instructors, locations, attendance
- Bookings: rooms, guests, bookings with availability
- Events: events, registrations, holiday passes
- Finance: SEPA batches/items (pain.008/001 XML), invoices
- Newsletter: campaigns, templates, recipients, subscriptions
- Site Builder: site_pages (Puck JSON), site_settings, cms_posts
- Portal Auth: member_portal_invitations, user linking
Feature Packages (9):
- @kit/module-builder — dynamic low-code CRUD engine
- @kit/member-management — 31 API methods, 21 actions, 8 components
- @kit/course-management, @kit/booking-management, @kit/event-management
- @kit/finance — SEPA XML generator + IBAN validator
- @kit/newsletter — campaigns + dispatch
- @kit/document-generator — PDF/Excel/Word
- @kit/site-builder — Puck visual editor, 15 blocks, public rendering
Pages (60+):
- Dashboard with real stats from all APIs
- Full CRUD for all 8 domains with react-hook-form + Zod
- Recharts statistics
- German i18n throughout
- Member portal with auth + invitation system
- Public club websites via Puck at /club/[slug]
Infrastructure:
- Dockerfile (multi-stage, standalone output)
- docker-compose.yml (Supabase self-hosted + Next.js)
- Kong API gateway config
- .env.production.example
2026-03-29 23:17:38 +02:00
Zaid Marzguioui
61ff48cb73
Initial state for GitNexus analysis
2026-03-29 19:44:57 +02:00