100 Commits
Author SHA1 Message Date
isaaccladandCursor 05a6be7efe Complete Events–Meet integration phases 2–5.
Deploy Ladill Events / deploy (push) Successful in 41s
Programme sync to Meet rooms, wallet-billed mass comms, webhook lifecycle updates, and registration access bridge with join-window gating on public pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 22:31:45 +00:00
isaaccladandCursor 06fedcfc55 Add virtual event sessions with Meet sync and platform-billed messaging.
Deploy Ladill Events / deploy (push) Successful in 41s
Events can define hybrid/virtual sessions synced to Meet rooms; SMS and email use wallet-billed platform APIs instead of Termii and Laravel mail.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 22:08:09 +00:00
isaaccladandCursor 70316879b2 Cap launcher dropdown at 15 visible apps (5 rows).
Deploy Ladill Events / deploy (push) Successful in 25s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:44:25 +00:00
isaaccladandCursor 18bb548c9f Hide launcher down arrow when scrolled to the end.
Deploy Ladill Events / deploy (push) Successful in 37s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:48:11 +00:00
isaaccladandCursor 7856ec854b Revert launcher scroll rail and fade; keep down arrow hint.
Deploy Ladill Events / deploy (push) Successful in 52s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:01:29 +00:00
isaaccladandCursor af9d315c70 Make launcher scroll affordance visible on open.
Deploy Ladill Events / deploy (push) Successful in 1m12s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:52:21 +00:00
isaacclad 2cafdb3dc1 Always show launcher scroll indicator and cap at 18 apps.
Deploy Ladill Events / deploy (push) Successful in 1m27s
Apply ladill-launcher-apps scroll styles unconditionally with a persistent
scrollbar track; propagate launcher blade and CSS across all Ladill apps.
2026-06-29 13:03:54 +00:00
isaaccladandCursor a015cda2ee Use + icon buttons on mobile dashboards.
Deploy Ladill Events / deploy (push) Successful in 58s
Sync mobile-header-btn partials, mobile x-btn.create, and update dashboard header actions for consistent mobile FABs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 16:22:56 +00:00
isaaccladandCursor d369de0ce4 Place wallet widget after Billing link in mobile profile sheet.
Deploy Ladill Events / deploy (push) Successful in 1m14s
Remove duplicate Billing header above Home; wallet card follows Billing
in menu order to match the desktop avatar dropdown.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:07:07 +00:00
isaaccladandCursor d9137b47e5 Sync mobile profile wallet card and 24h session idle timeout.
Deploy Ladill Events / deploy (push) Successful in 49s
Show wallet balance prominently in the mobile profile bottom sheet with refresh
on open; align session lifetime with the platform default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:46:19 +00:00
isaaccladandCursor b789e81134 Hide header avatar on mobile and sync shared mobile nav partials.
Deploy Ladill Events / deploy (push) Successful in 41s
Profile moves to the bottom nav sheet on small screens; optional search tab
support is synced from the Ladill platform template.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:04:32 +00:00
isaaccladandCursor cbfb8733ea Wire LadillLink through QrCode model and remaining QR surfaces.
Deploy Ladill Events / deploy (push) Successful in 46s
Public URLs, encoded payloads, slug preview, payment callbacks, and asset paths now use ladl.link instead of ladill.com/q/*.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 16:16:25 +00:00
isaaccladandCursor ceaa9ba8dc Use ladl.link URLs for all front-facing QR and short-link surfaces.
Deploy Ladill Events / deploy (push) Successful in 26s
Public landing pages, asset paths, payment callbacks, and redirects now go through QrCode::publicPath() / LadillLink instead of ladill.com/q/* routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 15:46:17 +00:00
isaaccladandCursor e234889f60 Make guest event registration email-optional like Ladill Mini.
Deploy Ladill Events / deploy (push) Successful in 35s
Attendees without Ladill accounts no longer need email at checkout; phone is required so organizers can reach them.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 14:18:45 +00:00
isaaccladandClaude Opus 4.8 8cca4fb6e3 Add opt-in custom domains with automatic SSL
Deploy Ladill Events / deploy (push) Successful in 1m23s
Customers can connect their own domain to a events page (storefront/event):
add a domain, point an A record (apex + www) to the app server, click Verify —
DNS is checked, then Ladill Domains' central SSL service issues + installs the
Let's Encrypt cert and calls back to flip it live. The custom domain then serves
the mapped page (host resolution on /). Feature-gated: only active when a Domains
SSL API key is set, so this deploy is inert until wired.

- custom_domains table + CustomDomain model
- CustomDomainService (DNS verify, request cert), DomainsSslClient, DnsResolver
- settings UI panel, signed SSL callback receiver, host resolution on /
- feature tests (DNS verify/fail, signed callback, ownership)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:59:25 +00:00
isaaccladandClaude Opus 4.8 73b9c30562 Add branded boot splash (Ladill Mail style) on app pages
Deploy Ladill Events / deploy (push) Successful in 30s
InjectBootSplash middleware shows a self-branded loading splash once per session
while the app boots, then fades out.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 22:11:00 +00:00
isaaccladandCursor 5e37d6103c Standardize desktop topbar widgets to match CRM layout.
Deploy Ladill Events / deploy (push) Successful in 52s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 18:15:15 +00:00
isaaccladandClaude Opus 4.8 c9bcc58fb0 Add wallet balance widget to the profile menu (after Billing)
Deploy Ladill Events / deploy (push) Successful in 30s
Wallet balance peek rendered as a menu row directly under Billing, backed by
a /wallet/balance endpoint (BillingClient) and guarded by Route::has. Also
opens Afia via a direct window event for reliability.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 12:25:56 +00:00
isaaccladandCursor b08c27cf6e Bind app sessions to the platform auth session.
Deploy Ladill Events / deploy (push) Successful in 26s
Clear local sessions when auth.ladill.com signs out and ping the platform session from keepalive.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 08:26:30 +00:00
isaaccladandCursor 4437dd781d Lower Events platform fees to 3.5% and 5.5%.
Deploy Ladill Events / deploy (push) Successful in 23s
Contributions drop from 5% to 3.5%; tickets drop from 9% to 5.5%.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 19:51:36 +00:00
isaaccladandCursor 8a4e650347 Fix corrupted profileMenuItems in layouts after menu propagation.
Deploy Ladill Events / deploy (push) Successful in 1m14s
Remove orphaned array entries that caused Blade parse errors and 500 responses on authenticated pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 10:04:50 +00:00
isaaccladandCursor 903b27b5d2 Unify logged-in profile dropdown with platform account menu.
Deploy Ladill Events / deploy (push) Successful in 28s
Wire UserProfileMenu and shared Blade partial into topbar, mobile nav, and layouts so menu items match the account portal (Ladill Mail excluded).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 09:34:00 +00:00
isaaccladandCursor 1fe3f80c09 Remove centralized account nav from app sidebar; redirect legacy URLs.
Deploy Ladill Events / deploy (push) Successful in 1m4s
Wallet, Billing, Team, Developers, and Support live on account.ladill.com.
Siloed sidebars keep product nav and app Settings only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:42:32 +00:00
isaaccladandCursor 9015039e48 Fix QR code previews not rendering on event and programme pages.
Deploy Ladill Events / deploy (push) Successful in 52s
Remove a duplicate preview ref that targeted a hidden card, enable mobile preview for programmes, and harden customizer init timing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 23:39:47 +00:00
isaaccladandCursor 77b3f3ccf4 Lower event fees: tickets 15%→9%, contributions 9%→5%.
Deploy Ladill Events / deploy (push) Successful in 32s
Update registration settlement and payouts copy for the new Ladill Pay tiers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 19:32:24 +00:00
isaaccladandClaude Opus 4.8 e0e51d4f9f Afia: render markdown bold in chat instead of showing raw asterisks
Deploy Ladill Events / deploy (push) Successful in 44s
Replies came back with **bold** markup that displayed literally to users.
Render the bubble as HTML (escaped first for safety) and convert **text** to
<strong>; newlines already handled by whitespace-pre-line.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 08:40:49 +00:00
isaaccladandClaude Opus 4.8 86e40bfbd2 Afia: rebrand assistant from QR Plus to Ladill Events
Deploy Ladill Events / deploy (push) Successful in 53s
Events shipped the QR Plus Afia (prompt, greeting, suggestions, and 'QR Plus
assistant' subtitle). Rewrite all for Ladill Events — events, tickets,
attendees, check-in, badges, programmes, payouts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:34:26 +00:00
isaaccladandCursor 51ac1e2f11 Fix SSO popup callback infinite loop and post-login 500.
Deploy Ladill Events / deploy (push) Successful in 1m13s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 20:21:31 +00:00
isaaccladandCursor 89d566e8ee Make SSO popup fallback URL work without controller changes.
Deploy Ladill Events / deploy (push) Successful in 32s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 16:05:14 +00:00
isaaccladandCursor 1266a1de32 Fix SSO popup login 500 and add branded signed-out pages.
Deploy Ladill Events / deploy (push) Successful in 27s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 15:46:13 +00:00
isaaccladandCursor a3b0c2f9cf Keep the app subdomain visible during Ladill SSO login and logout.
Deploy Ladill Events / deploy (push) Successful in 39s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 12:15:02 +00:00
isaaccladandCursor f48865d437 Unify primary buttons with gradient pill design across the app.
Deploy Ladill Events / deploy (push) Successful in 27s
Add shared btn-primary components and plus icons on create/new actions for a consistent Ladill UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 22:49:28 +00:00
isaaccladandCursor 7b08813c4e Move Support link under Account in sidebar.
Deploy Ladill Events / deploy (push) Successful in 53s
Place Support with Account navigation instead of the Settings footer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 20:30:50 +00:00
isaaccladandCursor b38dea33d1 Add app-specific mail branding and sidebar Support links.
Deploy Ladill Events / deploy (push) Successful in 28s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 20:12:52 +00:00
isaaccladandCursor cdb1875779 Update event checkout footer to Ladill Pay branding.
Deploy Ladill Events / deploy (push) Successful in 50s
Payment sections now read Secured by Paystack. Powered by Ladill Pay.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 06:28:42 +00:00
isaaccladandCursor 55e2ec71b3 Pin Settings to the sidebar footer in Ladill Events.
Deploy Ladill Events / deploy (push) Successful in 37s
Keep Settings anchored at the bottom of the product nav, consistent with Ladill Mail and Email.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 04:45:48 +00:00
isaaccladandCursor 6e3f0732ce Replace native confirm() dialogs with styled confirm modals.
Deploy Ladill Events / deploy (push) Successful in 48s
Add shared confirm-dialog component, Alpine ladillConfirm store, and
swap browser confirms for consistent bottom-sheet modals across user,
admin, and hosting flows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 21:10:53 +00:00
isaaccladandCursor 3c995d70f8 Show only Ladill app names in the mobile header.
Deploy Ladill Events / deploy (push) Successful in 30s
Remove route-based page titles and the uppercase subtitle line so mobile
headers display a single title like Ladill Bird.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 16:44:11 +00:00
isaaccladandCursor 99dbff200c Add mobile topbar titles and show Afia on all mobile headers.
Deploy Ladill Events / deploy (push) Successful in 57s
Route-based subtitle and page titles replace plain app labels in mobile topbars, and the Afia AI button is visible on mobile across topbars and mobile-page-header screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 16:29:44 +00:00
isaaccladandCursor 849617da85 Add mobile and desktop search for Events.
Deploy Ladill Events / deploy (push) Successful in 29s
Introduce a dedicated /search page, wire the bottom nav and topbar to it, and expose JSON results for live lookup of events and programmes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 15:37:44 +00:00
isaaccladandCursor 88e5276e68 Fix QR show/create mobile layout and action bar styling.
Deploy Ladill Events / deploy (push) Successful in 38s
Port the monolith QR mobile CSS (fixed bottom bar, safe-area inset, page background) and restore horizontal padding on create/show pages so buttons and content render correctly on mobile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 15:21:14 +00:00
isaaccladandCursor 554075d333 Use calendar events icon on the events list.
Deploy Ladill Events / deploy (push) Successful in 32s
Add ladill-icons/events.svg and point list rows at it instead of the launcher brand mark so in-app tiles show a product-appropriate calendar glyph.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 14:38:53 +00:00
isaaccladandCursor a2f7f353f3 Use Events launcher icon on the events list.
Deploy Ladill Events / deploy (push) Successful in 47s
Replace the QR code glyph with the branded Events mark so list rows match the product identity.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 14:23:52 +00:00
isaaccladandCursor 8618682413 Show event-focused stats on the events list page.
Deploy Ladill Events / deploy (push) Successful in 27s
Replace QR balance, code count, and scan totals with account balance, event count, and confirmed registrations so the dashboard reflects the Events product.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 13:51:44 +00:00
isaaccladandCursor 30528a0c7f Expand settings beyond QR into a full Events preferences page.
Deploy Ladill Events / deploy (push) Successful in 51s
Add event notification toggles, new-event defaults that pre-fill creation, and tuck QR styling into a secondary section.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 13:31:22 +00:00
isaaccladandCursor 5e00f319a5 Split attendees and badge printing; add a 3-step event create flow.
Deploy Ladill Events / deploy (push) Successful in 35s
Give each area its own sidebar entry and hub pages, and walk new events through details, QR design, then review before publish.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 12:27:42 +00:00
isaaccladandCursor 1d5b85f774 Improve cross-app SSO when switching from QR Plus to Events.
Deploy Ladill Events / deploy (push) Successful in 26s
Keep the shared auth session alive with periodic pings, store OIDC refresh tokens for silent re-login, and route launcher links through SSO connect.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 12:06:13 +00:00
isaaccladandCursor 2c1c3cdd3e Enforce Events favicon everywhere and fix deploy pipeline failures.
Deploy Ladill Events / deploy (push) Successful in 30s
Add favicon partial to all standalone pages, regenerate the Events icon asset, and stop marking deploys failed when the nginx vhost step cannot sudo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 11:56:27 +00:00
isaaccladandCursor a9b2960893 Remove redundant type picker from event and programme creation.
Deploy Ladill Events / deploy (push) Failing after 23s
Events is a single-product app — type is implicit on create, so drop the Type card, default-type setting, and rebrand the create flow copy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 11:14:10 +00:00
isaaccladandCursor d8dbc83e2d Extract Ladill Events as a standalone events suite at events.ladill.com.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Full control center for ticketed events, contributions, attendees, badges,
and programmes — not a QR utility clone. Includes SSO shell, import command,
and platform cutover runbook.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 09:39:53 +00:00