Commit Graph

273 Commits

Author SHA1 Message Date
Codex Agent
718c129a8d onboarding tracking is now wired, the tour can be replayed from Settings, install‑banner reset is included, and empty states in Tasks/Members/Guest Messages now have guided CTAs.
What changed:
  - Onboarding tracking: admin_app_opened on first authenticated dashboard load; event_created, branding_configured,
    and invite_created on their respective actions.
  - Tour replay: Settings now has an “Experience” section to replay the tour (clears tour seen flag and opens via ?tour=1).
  - Empty states: Tasks, Members, and Guest Messages now include richer copy + quick actions.
  - New helpers + copy: Tour storage helpers, new translations, and related UI wiring.
2025-12-28 18:59:12 +01:00
Codex Agent
d5f038d098 Added onboarding + a lightweight install banner to both the mobile login screen and the settings screen, with Android/Chromium
install prompt support and iOS “Share → Add to Home Screen” guidance. Also added a small helper + tests to decide
  when/which banner variant should show, and shared copy in common.json.
2025-12-28 18:26:17 +01:00
Codex Agent
b780d82d62 Added Phase‑1 continuation work across deep links, offline moderation queue, and admin push.
resources/js/admin/mobile/lib.
  - Admin push is end‑to‑end: new backend model/migration/service/job + API endpoints, admin runtime config, push‑aware
    service worker, and a settings toggle via useAdminPushSubscription. Notifications now auto‑refresh on push.
  - New PHP/JS tests: admin push API feature test and queue/haptics unit tests
  Added admin-specific PWA icon assets and wired them into the admin manifest, service worker, and admin shell, plus a
  new “Device & permissions” card in mobile Settings with a persistent storage action and translations.
  Details: public/manifest.json, public/admin-sw.js, resources/views/admin.blade.php, new icons in public/; new hook
  resources/js/admin/mobile/hooks/useDevicePermissions.ts, helpers/tests in resources/js/admin/mobile/lib/
  devicePermissions.ts + resources/js/admin/mobile/lib/devicePermissions.test.ts, and Settings UI updates in resources/
  js/admin/mobile/SettingsPage.tsx with copy in resources/js/admin/i18n/locales/en/management.json and resources/js/
admin/i18n/locales/de/management.json.
2025-12-28 15:00:47 +01:00
Codex Agent
4ce409e918 Completed the full mobile app polish pass: navigation feel, safe‑area consistency, input styling, list rows, FAB
patterns, skeleton loading, photo selection/bulk actions with shared‑element transitions, notification detail sheet,
  offline banner, maskable manifest icons, and route prefetching.

  Key changes

  - Navigation/shell: press feedback on all header actions, glassy sticky header and tab bar, safer bottom spacing
    (resources/js/admin/mobile/components/MobileShell.tsx, resources/js/admin/mobile/components/BottomNav.tsx).
  - Forms + lists: shared mobile form controls, list‑style rows in settings/profile, consistent inputs across core
    flows (resources/js/admin/mobile/components/FormControls.tsx, resources/js/admin/mobile/SettingsPage.tsx,
    resources/js/admin/mobile/ProfilePage.tsx, resources/js/admin/mobile/EventFormPage.tsx, resources/js/admin/mobile/
    EventMembersPage.tsx, resources/js/admin/mobile/EventTasksPage.tsx, resources/js/admin/mobile/
    EventGuestNotificationsPage.tsx, resources/js/admin/mobile/NotificationsPage.tsx, resources/js/admin/mobile/
    EventPhotosPage.tsx, resources/js/admin/mobile/EventsPage.tsx).
  - Media workflows: shared‑element photo transitions, selection mode + bulk actions bar (resources/js/admin/mobile/
    EventPhotosPage.tsx).
  - Loading UX: shimmering skeletons (resources/css/app.css, resources/js/admin/mobile/components/Primitives.tsx).
  - PWA polish + perf: maskable icons, offline banner hook, and route prefetch (public/manifest.json, resources/js/
    admin/mobile/hooks/useOnlineStatus.tsx, resources/js/admin/mobile/prefetch.ts, resources/js/admin/main.tsx).
2025-12-27 23:55:48 +01:00
Codex Agent
a8b54b75ea Added app badge support for the guest PWA and wired it to the existing counts (unread notifications + upload queue + pending uploads). When the total hits zero, the badge is cleared; when it’s >0, it’s set. 2025-12-27 14:15:14 +01:00
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