Commit Graph

268 Commits

Author SHA1 Message Date
Codex Agent
1a48c9458e Added pinch/zoom/drag for the photo viewer using @use-gesture/react + @react-spring/web, with swipe navigation only
when not zoomed and double‑tap/double‑click to toggle zoom. I also added a guest haptics toggle in settings (sheet
  + /settings) backed by localStorage.
2025-12-27 14:11:13 +01:00
Codex Agent
fa5a1fa367 Added a guest haptics preference and surfaced it in both the settings sheet and /settings, with safe device detection
and a reduced‑motion guard. Haptics now honor the toggle and still fall back gracefully on iOS (switch disabled when
  navigator.vibrate isn’t available).

  What changed

  - Haptics preference storage + gating: resources/js/guest/lib/haptics.ts
  - Preference hook: resources/js/guest/hooks/useHapticsPreference.ts
  - Settings UI toggle in sheet + page: resources/js/guest/components/settings-sheet.tsx, resources/js/guest/pages/
    SettingsPage.tsx
  - i18n labels: resources/js/guest/i18n/messages.ts
  - Tests: resources/js/guest/lib/__tests__/haptics.test.ts
2025-12-27 14:00:12 +01:00
Codex Agent
3e3a2c49d6 Implemented guest-only PWA using vite-plugin-pwa (the actual published package; @vite-pwa/plugin isn’t on npm) with
injectManifest, a new typed SW source, runtime caching, and a non‑blocking update toast with an action button. The
  guest shell now links a dedicated manifest and theme color, and background upload sync is managed in a single
  PwaManager component.

  Key changes (where/why)

  - vite.config.ts: added VitePWA injectManifest config, guest manifest, and output to /public so the SW can control /
    scope.
  - resources/js/guest/guest-sw.ts: new Workbox SW (precache + runtime caching for guest navigation, GET /api/v1/*,
    images, fonts) and preserves push/sync/notification logic.
  - resources/js/guest/components/PwaManager.tsx: registers SW, shows update/offline toasts, and processes the upload
    queue on sync/online.
  - resources/js/guest/components/ToastHost.tsx: action-capable toasts so update prompts can include a CTA.
  - resources/js/guest/i18n/messages.ts: added common.updateAvailable, common.updateAction, common.offlineReady.
  - resources/views/guest.blade.php: manifest + theme color + apple touch icon.
  - .gitignore: ignore generated public/guest-sw.js and public/guest.webmanifest; public/guest-sw.js removed since it’s
    now build output.
2025-12-27 10:59:44 +01:00
Codex Agent
efc173cf5d komplette überarbeitung des Gäste-Hilfebereichs und Ergänzung eines One-Time-Containers zum Aktualisieren der Hilfedokumente 2025-12-24 16:23:55 +01:00
Codex Agent
3ef2fc5dc1 die widerrufsbelehrung mit den neuen Wegen zum Widerruf aktualisiert 2025-12-24 12:18:58 +01:00
Codex Agent
42b4b647d7 • Added the two‑step Widerruf flow with an auth‑only CTA on the Widerrufsbelehrung page and a dedicated confirmation
screen where users pick an eligible end‑customer purchase and confirm. Eligibility is enforced server‑side
  (endcustomer_event, within 14 days, no event package created after purchase), refund is issued via Paddle, the
  purchase is marked refunded, the tenant package is deactivated, and a new confirmation email is sent using resources/
  views/emails/partials/layout.blade.php.

  Details

  - New controller + form request for the confirm flow: app/Http/Controllers/WithdrawalController.php, app/Http/
    Requests/Marketing/WithdrawalConfirmRequest.php
  - New confirmation page + CTA: resources/js/pages/marketing/WithdrawalConfirm.tsx, resources/js/pages/legal/Show.tsx
  - Routes + locale rewrites: routes/web.php, resources/js/lib/localizedPath.ts
  - New email notification + template: app/Notifications/Customer/WithdrawalConfirmed.php, resources/views/emails/
    withdrawal-confirmation.blade.php
  - Translations added for marketing UI + backend flash + email copy: public/lang/de/marketing.json, public/lang/en/
    marketing.json, resources/lang/de/marketing.php, resources/lang/en/marketing.php, resources/lang/de/emails.php,
    resources/lang/en/emails.php
  - Tests: tests/Feature/Marketing/WithdrawalConfirmationTest.php
2025-12-24 11:54:15 +01:00
Codex Agent
f6e7c72d14 paddle client fixes 2025-12-23 15:28:54 +01:00
Codex Agent
6fcb5bd929 fixed paddle request form 2025-12-23 15:22:46 +01:00
Codex Agent
3dd07ae2b2 bessere interpretation von paddle fehlern 2025-12-23 15:18:07 +01:00
Codex Agent
6bb159cebb fixed api url for portal sessions 2025-12-23 15:09:06 +01:00
Codex Agent
beb36c68ae fixed paddle api client 2025-12-23 15:00:52 +01:00
Codex Agent
1d2c2da915 all system emails look fresh now, plus added paddle portal debugging 2025-12-23 14:31:42 +01:00
Codex Agent
207725d460 Converted all notification emails to the branded layout by routing them through a shared Blade template and swapping
the MailMessage builders to use view(). This keeps the existing copy/labels but aligns the look with resources/views/
  emails/partials/layout.blade.php. I also switched the customer add‑on receipt notification to reuse the existing
  branded view and added missing translations for the upload pipeline alert.
2025-12-23 14:03:42 +01:00
Codex Agent
20ff3044e2 fehlende Nachrichtenübersetzungen für die erfolgreiche E-Mail-Verifikation ergänzt 2025-12-23 12:19:59 +01:00
Codex Agent
886b24b06b schickere bestellbestätigung und user role detaults auf "user" gesetzt. 2025-12-23 10:33:06 +01:00
Codex Agent
ed5c1918fc csrf handling mit der korrekten middleware verbunden 2025-12-23 09:54:26 +01:00
Codex Agent
826e2a93ce super.admin login bringt nun keinen Fehler 419 mehr 2025-12-23 09:25:59 +01:00
Codex Agent
77fc8015e7 Ich habe den Super‑Admin sauber auf einen eigenen Guard + eigenes Session‑Cookie umgestellt, damit Filament‑Login nicht mehr mit dem Frontend/Event‑Admin geteilt wird. 2025-12-23 09:17:39 +01:00
Codex Agent
8267b2bca3 paddle-logging verbessert 2025-12-23 08:53:00 +01:00
Codex Agent
aa6f9b35d9 csrf fixes 2025-12-22 22:41:23 +01:00
Codex Agent
0f2604309d various fixes for checkout 2025-12-22 21:51:34 +01:00
Codex Agent
c8f0f880d2 fixed missing contact_email from registration 2025-12-22 17:54:42 +01:00
Codex Agent
1eda29cfce removed bd quatsch 2025-12-22 15:57:20 +01:00
Codex Agent
526e59dc27 Fix Paddle customer lookup for billing 2025-12-22 15:55:01 +01:00
Codex Agent
d78ed0961b - Endkunden‑Checkout setzt subscription_expires_at nicht mehr (bleibt null)
app/Services/Checkout/CheckoutAssignmentService.php
  - TenantPackage setzt für Endkunden kein addCentury mehr (Default jetzt 1 Jahr, nur wenn expires_at fehlt)
app/Models/TenantPackage.php
  - Tests angepasst
tests/Unit/TenantPackageTest.php
2025-12-22 15:21:45 +01:00
Codex Agent
84d90c5ece paddle session fixes 2025-12-22 15:11:51 +01:00
Codex Agent
c0c98abbc7 wenn checkout.completed kommt, senden wir jetzt transaction_id +
checkout_id direkt an das Backend, damit der Server die Session via Paddle‑API finalisiert (auch wenn der Webhook
  nicht greift). Dadurch sollte “Zahlung wird verarbeitet” nicht mehr hängen bleiben.
2025-12-22 14:45:51 +01:00
Codex Agent
83712b9a3a fix csrf mismatch 2025-12-22 14:33:36 +01:00
Codex Agent
f9016fb8ab added beads and fixes for paddle checkout 2025-12-22 14:13:26 +01:00
Codex Agent
c947e638eb verschieben des sofortigen verzichts auf das Widerrrufsrecht zum Anlegen des Events 2025-12-22 13:11:16 +01:00
Codex Agent
84234bfb8e Updated checkout to wait for backend confirmation before advancing, added a “Processing payment…” state with retry/ refresh fallback, and now use Paddle totals/currency for purchase records + confirmation emails (with new email translations). 2025-12-22 09:06:48 +01:00
Codex Agent
41d29eb7d3 switch away from registry usage for docker builds 2025-12-21 19:11:01 +01:00
Codex Agent
6ee40745ca added upload queue notifications 2025-12-21 12:37:20 +01:00
Codex Agent
1e6027f438 bessere sichtbarkeit für die kamera-buttons 2025-12-20 19:19:07 +01:00
Codex Agent
d4c7d3f93a kamerazugriff wieder möglich + anleitung zum erlauben des kamerazugriffs 2025-12-20 17:43:40 +01:00
Codex Agent
80985828d8 ungültige paket-IDs werden nun abgefangen 2025-12-20 16:59:14 +01:00
Codex Agent
6500b8df2c neuer checkout-pfad: /de/bestellen/paketID und /en/checkout/PackageID 2025-12-20 16:17:21 +01:00
Codex Agent
18297aa3f1 added various tests for playwright 2025-12-19 21:56:39 +01:00
Codex Agent
778ffc8bb9 added glitchtip using sentry sdk 2025-12-19 10:13:30 +01:00
Codex Agent
53ec427e6e photo visibility for demo events, hardened the demo mode. fixed dark/light mode toggle and notification bell toggle. fixed photo upload page sizes & header visibility. 2025-12-18 21:14:24 +01:00
Codex Agent
7c4067b32b fixed reload flash for task picker page 2025-12-18 14:49:35 +01:00
Codex Agent
403ca71710 card slider now looks good, not messy, card height is unified and long text can be tapped to be fully visible. 2025-12-18 14:09:18 +01:00
Codex Agent
2196346db7 kleinere fixes zur sichtbarkeit der texte in aufgabenkarten und der demo-vorschau auf der homepage. 2025-12-18 13:42:57 +01:00
Codex Agent
2e4226a838 Checkout‑Registrierung validiert jetzt die E‑Mail‑Länge, und die Checkout‑Flows sind Paddle‑only: Stripe‑Endpoints/
Services/Helpers sind entfernt, API/Frontend angepasst, Tests auf Paddle umgestellt. Außerdem wurde die CSP gestrafft
  und Stripe‑Texte in den Abandoned‑Checkout‑Mails ersetzt.
2025-12-18 11:14:42 +01:00
Codex Agent
7213aef108 packages hat keine currency spalte 2025-12-18 09:55:30 +01:00
Codex Agent
f4d69894a5 paddle-anpassung für die sandbox 2025-12-18 09:53:35 +01:00
Codex Agent
d97417eda6 reihenfolge der migrations geändert 2025-12-18 09:13:22 +01:00
Codex Agent
61a94ab426 reihenfolge der migrations geändert 2025-12-18 09:09:03 +01:00
Codex Agent
eac90e16e7 anpassung devDependencies im build_stage 2025-12-18 09:00:42 +01:00
Codex Agent
1c4acda332 updated table structure for photobooth/sparkbooth settings. now there's a separate table for it. update all references and tests. also fixed the notification panel and the lightbox in the guest app. 2025-12-18 08:49:56 +01:00