Commit Graph

345 Commits

Author SHA1 Message Date
DanielS
f783a98392 docs: add lic server api spec and index in second brain 2026-07-15 00:58:13 +02:00
DanielS
d5593900fb feat(cron): add automated sync endpoint and vercel cron configuration for partners
All checks were successful
Staging Build / build (push) Successful in 2m57s
2026-07-15 00:30:13 +02:00
DanielS
92eb7454dc docs: update database schema documentation in second brain and grand functions 2026-07-15 00:27:03 +02:00
DanielS
cb4787e595 style(admin): replace browser alert and confirm with dialog modals
All checks were successful
Staging Build / build (push) Successful in 2m55s
2026-07-15 00:21:38 +02:00
DanielS
3fb80e6404 feat(admin): add manual partner import from lic server
All checks were successful
Staging Build / build (push) Successful in 2m48s
2026-07-15 00:07:31 +02:00
DanielS
a318a5e225 fix(admin): wrap access check in try-catch to prevent loader hanging
All checks were successful
Staging Build / build (push) Successful in 2m57s
2026-07-14 23:52:04 +02:00
DanielS
1b49348577 style: simplify home page layout and fix navbar link 2026-07-14 23:44:21 +02:00
DanielS
fb61f5f396 style: remove text gradients and centered badges 2026-07-14 23:42:28 +02:00
DanielS
7119383139 fix(security): harden licserver config access controls
All checks were successful
Staging Build / build (push) Successful in 2m50s
- Add auth guard to getLicServerConfig() - unauthenticated callers
  now receive null config instead of DB values
- Remove non-existent 'superadmin' role from saveLicServerConfig()
  check (only 'admin' exists per project schema)
- New migration: restrict settings table WRITE to admins only
  (previously any authenticated user could overwrite licserver_api_key)
2026-07-14 17:35:12 +02:00
DanielS
fa93e060c2 feat(admin): LicServer config manageable via admin settings UI
Some checks failed
Staging Build / build (push) Has been cancelled
- Migration: add licserver_base_url/api_key cols to settings table
- New: lib/actions/licserver-config.ts (read/write/test server actions)
- Updated: proxy routes read config from DB with env-var fallback
- Updated: admin/einstellungen adds LicServer card with URL + API key
  input, show/hide toggle, Save and Connection Test buttons
2026-07-14 17:30:37 +02:00
DanielS
be4e9204a3 feat(licserver): add partner API proxy routes and types
All checks were successful
Staging Build / build (push) Successful in 2m54s
- New: lib/types/licserver.ts (PartnerDto, paged result, problem)
- New: app/api/licserver/partners/route.ts (GET search/list)
- New: app/api/licserver/partners/[id]/route.ts (GET by UUID)
- Updated: .env.example with LICSERVER_BASE_URL + LICSERVER_API_KEY

Auth-guarded via Supabase session. API key is server-side only.
Upstream: http://192.168.178.174:9980 (internal container network)
2026-07-14 17:24:00 +02:00
DanielS
2e30974aed fix(wizard): give summary sidebar equal 2/6 col width
All checks were successful
Staging Build / build (push) Successful in 2m34s
2026-07-14 16:55:45 +02:00
DanielS
c30505de05 feat(wizard): expand step 3 container to max-w-screen-2xl
Some checks failed
Staging Build / build (push) Failing after 16m18s
2026-07-14 15:24:29 +02:00
DanielS
5a2afd8600 feat(wizard): widen license lookup panel to 2 cols
All checks were successful
Staging Build / build (push) Successful in 2m55s
2026-07-14 14:35:00 +02:00
DanielS
72b906779c feat(wizard): add license lookup panel (UI mockup)
All checks were successful
Staging Build / build (push) Successful in 2m55s
Add collapsible LicenseLookupPanel component to step 3
of the order wizard (left column). Panel queries mock
LicServer data by license key and displays product,
customer, dates, status badge and licensed modules.
Real API endpoint can replace mock in lookupLicense().

- New: components/wizard/license-lookup-panel.tsx
- Modified: components/order-wizard.tsx (4-col grid)
2026-07-14 12:57:46 +02:00
DanielS
0b4755d438 feat: split step-3 into independent left/right grid columns with sticky local stepper
All checks were successful
Staging Build / build (push) Successful in 2m51s
2026-07-10 16:10:25 +02:00
DanielS
d37a6b4348 feat: sticky header with stepper for step 3, sidebar aligns under header
All checks were successful
Staging Build / build (push) Successful in 2m49s
2026-07-10 15:58:14 +02:00
DanielS
21550f1389 fix: sidebar top-[24vh] prevents stepper overlap, reduce max-h to 70vh
All checks were successful
Staging Build / build (push) Successful in 2m49s
2026-07-10 15:43:24 +02:00
DanielS
43e6a92663 feat: implement category flags, drop global tables, fix sidebar sticky layout
All checks were successful
Staging Build / build (push) Successful in 2m48s
2026-07-10 15:27:55 +02:00
DanielS
305671acc6 fix: stepper circles always blue, replace bg-primary with bg-blue-600 2026-07-10 15:23:43 +02:00
DanielS
17d76f55e6 refactor: subdivide monolithic order wizard into clean modular step components
All checks were successful
Staging Build / build (push) Successful in 2m54s
2026-07-10 15:11:03 +02:00
DanielS
4e82146ab7 feat(wizard): replace browser alerts with modern custom UI toasts 2026-07-10 15:03:55 +02:00
DanielS
83a019785b style(wizard): change add-to-basket button label dynamically to Kasse speichern and Kasse anlegen 2026-07-10 15:01:46 +02:00
DanielS
f091b97ca0 fix(wizard): prevent duplicate device names in the shopping cart 2026-07-10 14:59:10 +02:00
DanielS
6d6bb4dfe6 style(css): remove text-gradient in favor of solid blue color
All checks were successful
Staging Build / build (push) Successful in 2m53s
2026-07-10 14:54:24 +02:00
DanielS
e59039dd4e style(wizard): show checkmark icon for past completed steps in stepper 2026-07-10 14:51:14 +02:00
DanielS
f80866218b style(wizard): highlight edited item, improve sidebar styling, and add cart count badge to stepper 2026-07-10 14:49:47 +02:00
DanielS
545b5e93bf style(admin): change wizard next button text to black
All checks were successful
Staging Build / build (push) Successful in 3m2s
2026-07-10 14:43:36 +02:00
DanielS
e9117d34a0 style(admin): set category grouping to true by default and color button blue when active 2026-07-10 14:43:11 +02:00
DanielS
d72830412e refactor(wizard): improve basket CRUD and submit lifecycle with editingIdx state 2026-07-10 14:40:49 +02:00
DanielS
0a9997e98a style(wizard): show numbers instead of check icons in progress stepper 2026-07-10 11:18:40 +02:00
DanielS
0b268881a1 style(wizard): dock stepper in step 3 and make summary card sticky top-[20vh]
All checks were successful
Staging Build / build (push) Successful in 2m50s
2026-07-10 10:52:07 +02:00
DanielS
993c817dff fix(checkout): correct import path for buildEmailItemsSection
All checks were successful
Staging Build / build (push) Successful in 2m43s
2026-07-10 10:02:52 +02:00
DanielS
4da386f693 fix(build): move buildEmailItemsSection to email-templates.ts to fix Turbopack build failure
Some checks failed
Staging Build / build (push) Failing after 25s
2026-07-10 10:00:49 +02:00
DanielS
c252fa11d0 fix(checkout): scope fileName correctly in checkout route
Some checks failed
Staging Build / build (push) Failing after 25s
2026-07-10 09:55:49 +02:00
DanielS
1a7a765d72 fix(checkout): use full email template with PDF attachment for checkout API route
Some checks failed
Staging Build / build (push) Failing after 26s
2026-07-10 09:54:02 +02:00
DanielS
ec1ad4d444 fix(checkout): use full email template with PDF attachment for checkout confirmations
Some checks failed
Staging Build / build (push) Failing after 24s
2026-07-10 09:45:21 +02:00
DanielS
0679fdfdd7 fix(admin): close DialogFooter tag in product dialog
All checks were successful
Staging Build / build (push) Successful in 2m45s
2026-07-10 09:37:34 +02:00
DanielS
0ecb16daff feat(admin): support full view in product edit and wizard steps in product create 2026-07-10 09:36:30 +02:00
DanielS
c8183abff7 fix(admin): close FormField and FormItem correctly in create product dialog
All checks were successful
Staging Build / build (push) Successful in 2m44s
2026-07-10 09:29:57 +02:00
DanielS
0435984c82 feat(admin): make product dialog wider and improve module additions layout
Some checks failed
Staging Build / build (push) Failing after 26s
2026-07-10 09:28:09 +02:00
DanielS
27fe6c6eef feat(admin): move allow_update_discount option to product level
All checks were successful
Staging Build / build (push) Successful in 2m50s
2026-07-10 09:15:34 +02:00
DanielS
bc6487bba4 feat(email): include order item configurations in confirmation email
All checks were successful
Staging Build / build (push) Successful in 2m54s
2026-07-10 08:57:52 +02:00
DanielS
d8b7076e7e feat(admin): add allow_update_discount option to category dialog 2026-07-10 08:55:53 +02:00
DanielS
9d888e6380 docs(grand-functions): align references with codebase 2026-07-10 08:54:00 +02:00
DanielS
2f92213594 feat: reconstruct multiple devices from initialOrder items into basketItems for editing
All checks were successful
Staging Build / build (push) Successful in 2m47s
2026-07-10 01:10:39 +02:00
DanielS
4fa2daf212 fix: auto-save current uncommitted wizard state to basket before editing another item
All checks were successful
Staging Build / build (push) Successful in 2m48s
2026-07-10 01:01:28 +02:00
DanielS
dc5465e289 chore: align device terminology to cash register across wizard and success pages
All checks were successful
Staging Build / build (push) Successful in 2m46s
2026-07-10 00:55:12 +02:00
DanielS
99cbb11c5a feat: add edit and delete actions to basket items for device configuration switching
Some checks failed
Staging Build / build (push) Has been cancelled
2026-07-10 00:52:22 +02:00
DanielS
a95afbf443 fix: attach device_name to order items in API checkout route
All checks were successful
Staging Build / build (push) Successful in 2m47s
2026-07-10 00:45:20 +02:00