Commit Graph
100 Commits
Author SHA1 Message Date
isaacclad 7af70f873b Simplify pay wait copy and scale Paystack to fill the loading area.
Deploy Ladill QR Plus / deploy (push) Successful in 56s
Use “Please wait…” while loading, and scale the contained Paystack iframe so
checkout fills the sheet body without a floating second card.
2026-07-23 22:58:14 +00:00
isaacclad d6565108dd Render Paystack flush in the sheet loading area without a second stage.
Deploy Ladill QR Plus / deploy (push) Has been cancelled
Drop host shadows and keep the iframe transparent so checkout fills the
Ladill sheet body instead of floating as a second card.
2026-07-23 22:45:39 +00:00
isaacclad 6a4dfd4c2d Force Paystack checkout into the sheet mount on first insert.
Deploy Ladill QR Plus / deploy (push) Has been cancelled
Redirect first iframe append into the Ladill sheet body and keep absolute
fill styles applied so checkout is not a second full-screen modal.
2026-07-23 22:37:27 +00:00
isaacclad e30c9dada5 Restore Paystack Inline in-page sheet/modal; stop separate-browser checkout.
Deploy Ladill QR Plus / deploy (push) Successful in 1m9s
Pass access_code through pay responses and launch PaystackPop from the shared sheet instead of window.open.
2026-07-21 19:12:24 +00:00
isaacclad d18bb3cd97 Skip ladl.link redirect for JSON QR pay requests so checkout sheets can open.
Deploy Ladill QR Plus / deploy (push) Successful in 46s
2026-07-21 18:46:26 +00:00
isaacclad f88d50f24c Open Paystack from the Pay click gesture, not after fetch.
Deploy Ladill QR Plus / deploy (push) Successful in 47s
Paystack blocks iframes, so checkout uses a popup beside the sheet/modal chrome. Opening about:blank on the user tap keeps that window from being blocked after the async initiate response.
2026-07-21 18:14:04 +00:00
isaacclad 6b81644c32 Fix Paystack sheet: stop iframe embeds that Paystack blocks.
Deploy Ladill QR Plus / deploy (push) Successful in 52s
Paystack checkout.paystack.com returns X-Frame-Options: SAMEORIGIN, so the shared sheet opened empty. Keep mobile sheet/desktop modal chrome, launch checkout in a named window with a Continue CTA fallback, and escape payment-return via window.opener or top.
2026-07-21 17:35:31 +00:00
isaacclad 2b3568695b Present Paystack checkout in a responsive mobile sheet and desktop modal.
Deploy Ladill QR Plus / deploy (push) Successful in 1m58s
Standardize customer-facing Ladill Pay checkout shells across products, open them on all viewports, and escape iframe callbacks back to the product flow.
2026-07-21 16:50:07 +00:00
isaacclad c0b897dd95 Sync launcher after restoring Merchant/Mini/Give and adding One.
Deploy Ladill QR Plus / deploy (push) Successful in 1m41s
2026-07-21 14:23:52 +00:00
isaacclad b5c1d744ca Fix deploy tmp paths: drop unset gitea.run_attempt.
Deploy Ladill QR Plus / deploy (push) Successful in 39s
act_runner v0.2.x does not expose gitea.run_attempt, so release archive and
workspace paths rendered with a trailing dash. Use gitea.run_id only, matching
the Meet/CRM deploy workflows.
2026-07-17 12:55:22 +00:00
isaacclad 5148a25509 Keep bookshop title in the hero, above the author card.
Deploy Ladill QR Plus / deploy (push) Successful in 57s
Restore a single hero layout: title and tagline sit on the cover with
extra bottom padding so the overlapping author card does not cover them.
2026-07-16 21:48:35 +00:00
isaacclad 0dfa77752a Clamp bookshop tagline only; restore full author bio.
Deploy Ladill QR Plus / deploy (push) Successful in 1m29s
The one-line ellipsis applies to the page subtitle (tagline), not the
author bio in the card.
2026-07-16 21:45:02 +00:00
isaacclad 8e5574cb52 Move bookshop title and tagline above author card on mobile.
Deploy Ladill QR Plus / deploy (push) Successful in 1m11s
On small screens the hero only shows the cover; title and sub sit above
the author card. Desktop still places them on the cover.
2026-07-16 21:42:30 +00:00
isaacclad 349a65c3ed Remove Bookshop label from public bookshop landing hero.
Deploy Ladill QR Plus / deploy (push) Successful in 1m42s
Keep only the author title and tagline on the cover.
2026-07-16 21:35:40 +00:00
isaacclad 8ca3e3a903 Rename bookshop hero label and clamp description on mobile.
Deploy Ladill QR Plus / deploy (push) Successful in 1m15s
Show "Bookshop" instead of "Author bookshop", and ellipsis-truncate the
tagline and bio to a single line on small screens.
2026-07-16 21:33:07 +00:00
isaacclad 5bab0fedaf Use Host-header loopback for billing force_ip.
Deploy Ladill QR Plus / deploy (push) Successful in 1m45s
CURLOPT_RESOLVE was not reliably faster; rewrite the billing base URL to the
forced IP and send the original Host header instead.
2026-07-16 21:28:06 +00:00
isaacclad 02e6778ccf Speed up QR create/update by cutting billing round-trips.
Deploy Ladill QR Plus / deploy (push) Successful in 2m2s
Create was making three sequential public HTTPS billing calls (~400ms each)
while holding a DB transaction open for image generation. Use loopback DNS
forcing, cache balances briefly, return balance from debit, regenerate images
only when style changes, and keep remote work outside the DB transaction.
2026-07-16 21:25:16 +00:00
isaacclad d83a314bee Add Portfolio and Bookshop QR types with tailored landing pages.
Deploy Ladill QR Plus / deploy (push) Successful in 58s
Portfolio showcases freelancer work projects; Bookshop lists author titles with multi-platform purchase links. Includes create/edit forms, public assets, and tests.
2026-07-16 20:56:52 +00:00
isaacclad 95d73d1367 Add Campaigns module for grouping QR codes.
Deploy Ladill QR Plus / deploy (push) Successful in 1m6s
Let accounts organise codes by promo or launch, attach or detach codes, and view combined scan totals from the sidebar.
2026-07-16 20:43:02 +00:00
isaacclad ccb7c971e6 Remove Merchant, Mini, and Give from the app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 1m59s
Registry marks them soon pending BoG licensing; propagate the clean launcher so every app matches.
2026-07-15 13:28:48 +00:00
isaacclad aafeaa6c4c Remove desktop header search from app topbars.
Deploy Ladill QR Plus / deploy (push) Successful in 1m13s
Drop the lg+ topbar search field; mobile search entry points are unchanged.
2026-07-09 06:57:33 +00:00
isaacclad 841c3dcf94 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 50s
2026-07-07 23:13:52 +00:00
isaacclad 4787ec9d59 Show boot splash on app open/reload for logged-in users.
Deploy Ladill QR Plus / deploy (push) Successful in 1m30s
Replace the once-per-session sessionStorage guard (which suppressed the loading
screen after its first appearance) with entry-aware logic: show on app entry
and reloads, suppress on internal link navigations and back/forward.
2026-07-07 20:35:34 +00:00
isaacclad 5ca1dc8bd8 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 30s
2026-07-07 14:42:59 +00:00
isaacclad 389f3612b6 Prefer system npm in deploy CI when portable node-gyp is broken.
Deploy Ladill QR Plus / deploy (push) Successful in 1m37s
Falls back to downloading Node only when host npm is unavailable, fixing npm ci failures on ladill-deploy-runner.
2026-07-07 00:46:54 +00:00
isaacclad c535aad60a Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Failing after 3s
2026-07-07 00:22:00 +00:00
isaaccladandCursor 27e0aaea87 Propagate shared copy-button component and clipboard helper.
Deploy Ladill QR Plus / deploy (push) Successful in 42s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 23:04:26 +00:00
isaacclad b8cbfa24a7 Use mobile icon buttons on QR Plus dashboard.
Deploy Ladill QR Plus / deploy (push) Successful in 1m6s
Add header create action and sync mobile notification badge partial.
2026-07-03 22:41:00 +00:00
isaacclad 04d0cc7eb2 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 56s
2026-07-01 17:05:14 +00:00
isaaccladandCursor 31c292c5e5 Throttle platform SSO session checks to cut per-request auth latency.
Deploy Ladill QR Plus / deploy (push) Successful in 1m23s
Verify auth.ladill.com at most once every 90s; recommend Redis for session/cache in .env.example.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:51:12 +00:00
isaacclad 245a862b55 Add Queue to app launcher config and icon.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Propagated from ladill monorepo launcher sync.
2026-06-29 22:12:15 +00:00
isaacclad 8a524b28f6 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 35s
2026-06-29 17:53:18 +00:00
isaaccladandCursor 9eeabaac0d Cap launcher dropdown at 15 visible apps (5 rows).
Deploy Ladill QR Plus / deploy (push) Successful in 1m1s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:44:42 +00:00
isaaccladandCursor 60cce3a544 Hide launcher down arrow when scrolled to the end.
Deploy Ladill QR Plus / deploy (push) Successful in 23s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:48:31 +00:00
isaaccladandCursor d6a375bd25 Revert launcher scroll rail and fade; keep down arrow hint.
Deploy Ladill QR Plus / deploy (push) Successful in 58s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:02:06 +00:00
isaaccladandCursor 02d15e9c07 Make launcher scroll affordance visible on open.
Deploy Ladill QR Plus / deploy (push) Successful in 29s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:52:37 +00:00
isaacclad 1e77b603f7 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 36s
2026-06-29 13:29:48 +00:00
isaacclad b9ef75dd0d Always show launcher scroll indicator and cap at 18 apps.
Deploy Ladill QR Plus / deploy (push) Successful in 46s
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:04:25 +00:00
isaaccladandCursor 3345d9e498 Use + icon buttons on mobile dashboards.
Deploy Ladill QR Plus / deploy (push) Successful in 26s
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:23:12 +00:00
isaaccladandCursor fc0d1550bb Place wallet widget after Billing link in mobile profile sheet.
Deploy Ladill QR Plus / deploy (push) Successful in 1m12s
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:25 +00:00
isaaccladandCursor 961aa8f3df Sync mobile profile wallet card and 24h session idle timeout.
Deploy Ladill QR Plus / deploy (push) Successful in 59s
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:20 +00:00
isaaccladandCursor 75de808a43 Hide header avatar on mobile and sync shared mobile nav partials.
Deploy Ladill QR Plus / deploy (push) Successful in 27s
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:33 +00:00
isaacclad 420380b3ae Sync app launcher from registry — add Frontdesk.
Deploy Ladill QR Plus / deploy (push) Successful in 29s
2026-06-28 01:46:33 +00:00
isaaccladandCursor 4e12ef4cd0 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 34s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:03:58 +00:00
isaaccladandCursor c8a259ac1b Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 18:28:04 +00:00
isaaccladandCursor fe9311001e Redirect legacy /q/* URLs to canonical ladl.link addresses.
Deploy Ladill QR Plus / deploy (push) Successful in 1m7s
External /q requests 301/307 to ladl.link; internal X-Ladill-Internal requests still serve content for platform proxying.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 17:19:04 +00:00
isaaccladandCursor 5372a4926f Wire LadillLink through QrCode model and remaining QR surfaces.
Deploy Ladill QR Plus / deploy (push) Successful in 52s
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 1366015845 Use ladl.link URLs for all front-facing QR and short-link surfaces.
Deploy Ladill QR Plus / deploy (push) Successful in 36s
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:06 +00:00
isaacclad eebcf19c04 Sync app launcher from registry
Deploy Ladill QR Plus / deploy (push) Successful in 35s
2026-06-27 15:16:18 +00:00
isaaccladandCursor ac97d7c107 Sync app launcher config and add POS icon.
Deploy Ladill QR Plus / deploy (push) Successful in 21s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 22:53:42 +00:00
isaaccladandCursor 67339046d4 Prefill business QR creation from CRM contact links.
Deploy Ladill QR Plus / deploy (push) Successful in 51s
Decode CRM prefill tokens so contact name, phone, email, and address carry into QR Plus.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 20:07:20 +00:00
isaaccladandCursor cc22222d6c Standardize desktop topbar widgets to match CRM layout.
Deploy Ladill QR Plus / deploy (push) Successful in 30s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 18:15:39 +00:00
isaaccladandClaude Opus 4.8 93a78cdba5 Add wallet balance widget to the profile menu (after Billing)
Deploy Ladill QR Plus / deploy (push) Successful in 23s
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:51 +00:00
isaaccladandClaude Opus 4.8 b9c988df9d Add CRM to the Ladill app launcher
Deploy Ladill QR Plus / deploy (push) Successful in 43s
crm.ladill.com is now live in the suite; add its launcher row + icon
(byte-identical shared launcher config).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:41:28 +00:00
isaaccladandCursor 91c87493bf Bind app sessions to the platform auth session.
Deploy Ladill QR Plus / deploy (push) Successful in 25s
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 bb07970a0b Add Ladill SMS to shared app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 37s
Include sms.ladill.com in the cross-app launcher and ship the SMS icon asset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 23:12:36 +00:00
isaaccladandCursor 92d0378269 Hide the current page link in the unified profile dropdown.
Deploy Ladill QR Plus / deploy (push) Successful in 50s
Skip Home, account, and admin menu items when the user is already on that destination.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 10:16:16 +00:00
isaaccladandCursor 9736720487 Fix corrupted profileMenuItems in layouts after menu propagation.
Deploy Ladill QR Plus / deploy (push) Successful in 1m6s
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:19 +00:00
isaaccladandCursor b79d7c4252 Unify logged-in profile dropdown with platform account menu.
Deploy Ladill QR Plus / deploy (push) Successful in 25s
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:33:35 +00:00
isaaccladandCursor 03fffa04be Add account-level Analytics page to QR Plus.
Deploy Ladill QR Plus / deploy (push) Successful in 39s
Aggregates scan metrics across all codes with charts, breakdowns, and a sidebar nav item.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:57:08 +00:00
isaaccladandCursor fd4ac37f0a Remove centralized account nav from app sidebar; redirect legacy URLs.
Deploy Ladill QR Plus / deploy (push) Successful in 29s
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:51 +00:00
isaaccladandClaude Opus 4.8 9d024e7cf4 Ignore storage/framework build artifacts (compiled views/cache/sessions/testing)
Deploy Ladill QR Plus / deploy (push) Successful in 1m13s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 22:59:34 +00:00
isaaccladandCursor bdf37d0547 Restore silent SSO on app entry for users switching between apps.
Deploy Ladill QR Plus / deploy (push) Successful in 31s
Guests without a local session try prompt=none SSO first; marketing pages
are only for visitors with no platform session (localhost fix retained).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 13:47:36 +00:00
isaaccladandCursor 3d7774ea05 Fix guest entry: correct marketing URL and stop auto silent SSO.
Deploy Ladill QR Plus / deploy (push) Successful in 29s
Correct localhost marketing_url default and stop redirecting guests through
/sso/connect on visit; SSO starts only via explicit sign-in.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 13:09:31 +00:00
isaaccladandClaude Opus 4.8 deb8888157 QR: stop balance stat card overflowing on small screens
Deploy Ladill QR Plus / deploy (push) Successful in 52s
The header stats used sm:grid-cols-3 (equal thirds), so the nowrap GHS
balance overflowed its card on narrower >=640px devices and for larger
amounts. Use a content-sized flex row (cards already width:auto) so each
card grows to fit and wraps when space is tight.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:58:57 +00:00
isaaccladandClaude Opus 4.8 f3563c7d3e QR: fix delete 500 — relation is scanEvents(), not scans()
Deploy Ladill QR Plus / deploy (push) Successful in 35s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:29:25 +00:00
isaaccladandClaude Opus 4.8 46d0ef8825 QR: add type-to-confirm delete on the QR code page
Deploy Ladill QR Plus / deploy (push) Successful in 59s
Users asked to delete codes they no longer need. Add a destroy route +
controller action (authorized via QrCodePolicy::delete) and a danger-zone
delete on the show page behind a confirmation modal that requires typing the
code's label — deliberately not a one-click delete since it permanently
breaks the printed code and removes its scan history.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:24:55 +00:00
isaaccladandCursor c4e2c75324 Send SSO guests to ladill.com/products/qrplus instead of subdomain landings.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Remove interactive OAuth fallback on silent SSO failure and add ladill.marketing_url config so app subdomains open the dashboard when signed in locally.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 22:22:28 +00:00
isaaccladandClaude Opus 4.8 94f00e16f7 Afia: render markdown bold in chat instead of showing raw asterisks
Deploy Ladill QR Plus / deploy (push) Successful in 45s
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:41:22 +00:00
isaaccladandClaude Opus 4.8 997385b315 Per-app logout keeps platform SSO session (quick password-less re-entry).
Deploy Ladill QR Plus / deploy (push) Successful in 56s
Local-only sign-out: end this app's session but leave the auth.ladill.com
session intact, so the signed-out page's Sign in again re-auths silently via
prompt=none. Full sign-out of all Ladill apps remains on account.ladill.com.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:23:53 +00:00
isaaccladandClaude Opus 4.8 e752b07b67 Add Merchant to app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 41s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:03:33 +00:00
isaaccladandCursor dcb6b486bd Fix SSO popup callback infinite loop and post-login 500.
Deploy Ladill QR Plus / deploy (push) Successful in 50s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 20:21:54 +00:00
isaaccladandCursor 7538f156ff Make SSO popup fallback URL work without controller changes.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 16:05:42 +00:00
isaaccladandCursor e88e10227d Fix SSO popup login 500 and add branded signed-out pages.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 15:46:30 +00:00
isaaccladandCursor cd3ba1f334 Keep the app subdomain visible during Ladill SSO login and logout.
Deploy Ladill QR Plus / deploy (push) Successful in 30s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 12:15:48 +00:00
isaaccladandCursor 986c7a81d9 Add Ladill Give to the shared app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 1m22s
Sync ladill_launcher.php and give.svg across all extracted apps so Give appears in every product switcher.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 10:34:02 +00:00
isaaccladandCursor e8e5f94bb8 Unify primary buttons with gradient pill design across the app.
Deploy Ladill QR Plus / deploy (push) Successful in 31s
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:42 +00:00
isaaccladandCursor d67cb0cd30 Move Support link under Account in sidebar.
Deploy Ladill QR Plus / deploy (push) Successful in 38s
Place Support with Account navigation instead of the Settings footer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 20:30:36 +00:00
isaaccladandCursor 6681ae80a0 Add app-specific mail branding and sidebar Support links.
Deploy Ladill QR Plus / deploy (push) Successful in 47s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 20:12:37 +00:00
isaaccladandCursor 84ebac5fdc Add Ladill Transfer to the shared app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 31s
Include transfer.svg and the SSO launcher row so Transfer appears in the
topbar grid across all Ladill apps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 16:08:22 +00:00
isaaccladandCursor 5b55b4d187 Update checkout footer to Ladill Pay branding.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Payment sections now read Secured by Paystack. Powered by Ladill Pay.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 06:28:49 +00:00
isaaccladandCursor ebdae5b989 Pin Settings to the sidebar footer in Ladill QR Plus.
Deploy Ladill QR Plus / deploy (push) Successful in 1m8s
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:51 +00:00
isaaccladandCursor f7d79809b4 Replace native confirm() dialogs with styled confirm modals.
Deploy Ladill QR Plus / deploy (push) Successful in 27s
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:58 +00:00
isaaccladandCursor 1a6d2adbbc Add Mini launcher icon for cross-app app grid.
Deploy Ladill QR Plus / deploy (push) Successful in 30s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 19:58:13 +00:00
isaacclad 48f289adb5 Add Ladill Mini to shared app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 1m9s
2026-06-07 18:51:50 +00:00
isaaccladandCursor 3f9b84af67 Show only Ladill app names in the mobile header.
Deploy Ladill QR Plus / deploy (push) Successful in 43s
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 40981be252 Add mobile topbar titles and show Afia on all mobile headers.
Deploy Ladill QR Plus / deploy (push) Successful in 33s
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:30:16 +00:00
isaaccladandCursor 5fb2de31c8 Add mobile and desktop search for QR Plus.
Deploy Ladill QR Plus / deploy (push) Successful in 40s
Introduce a dedicated /search page, wire the bottom nav and topbar to it, and expose JSON results for live lookup of QR codes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 15:37:58 +00:00
isaaccladandCursor de2ad0d393 Fix QR show/create mobile layout and action bar styling.
Deploy Ladill QR Plus / deploy (push) Successful in 36s
Port the monolith QR mobile CSS (fixed bottom bar, safe-area inset, page background) and restore horizontal padding on create/show pages — shared with Ladill Events.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 15:23:50 +00:00
isaaccladandCursor b759d78432 Improve cross-app SSO when switching between Ladill apps.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
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:40 +00:00
isaaccladandCursor b0c384fa7a Add Ladill Events to the shared app launcher.
Deploy Ladill QR Plus / deploy (push) Successful in 30s
Keeps the launcher identical across extracted apps now that Events is live.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 09:40:01 +00:00
isaaccladandCursor a7090e9c30 Add QR-specific settings for notifications and new-code defaults.
Deploy Ladill QR Plus / deploy (push) Successful in 1m15s
Store per-account preferences in qr_settings and pre-fill the create flow with saved type and brand styling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 09:14:16 +00:00
isaaccladandCursor 9ddda21ea3 Add Afia AI assistant to the QR Plus header.
Deploy Ladill QR Plus / deploy (push) Successful in 1m33s
Wire in-app chat scoped to QR codes, billing, and scans so users get product-specific help without leaving qrplus.ladill.com.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 08:56:29 +00:00
isaaccladandCursor 6a5e26315e Import PDF documents when migrating QR codes from the platform.
Deploy Ladill QR Plus / deploy (push) Successful in 28s
Links qr_documents to imported codes and copies PDF files when --storage-source is provided.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 07:49:53 +00:00
isaaccladandCursor 58bc89a528 Add QR Plus to the shared app launcher across all Ladill apps.
Deploy Ladill QR Plus / deploy (push) Successful in 32s
Register qrplus.ladill.com in ladill_launcher.php and sync the launcher icon.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 06:46:48 +00:00
isaaccladandCursor d62f0f0c57 Unify SSO with platform for seamless sign-in across Ladill apps.
Deploy Ladill QR Plus / deploy (push) Successful in 29s
Add silent OAuth, deep-link guest redirects, and a session keepalive iframe.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 06:33:16 +00:00
isaaccladandCursor 43728bcec3 Add QR Plus REST API for listing, creating, and updating codes.
Deploy Ladill QR Plus / deploy (push) Successful in 29s
Exposes /api/v1/qr-codes with analytics, team account header support, and qr:read/qr:write token abilities.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 06:25:16 +00:00
isaaccladandCursor 69405c93d3 Fix QR code show page undefined orders variable.
Deploy Ladill QR Plus / deploy (push) Successful in 34s
Pass orders as null from the controller so the leftover commerce section does not 500 on Plus types.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 06:20:49 +00:00
isaaccladandCursor 8c3e9d3c26 Add team, developers, PDF type, and QR rendering dependency.
Deploy Ladill QR Plus / deploy (push) Successful in 42s
Enables account collaboration, API tokens, hosted PDF codes, and fixes QR detail 500s by declaring chillerlan/php-qrcode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 06:16:13 +00:00
isaaccladandCursor bcd1cf5d28 Fix QR codes views to use user.qr-codes route names.
Deploy Ladill QR Plus / deploy (push) Successful in 56s
Removes missing topup route/modal and sends low-balance users to the platform wallet.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 06:02:33 +00:00