Commit Graph
109 Commits
Author SHA1 Message Date
isaacclad 970a98ecfe Simplify Paystack checkout handoff
Deploy Ladill POS / deploy (push) Successful in 55s
2026-07-24 08:25:28 +00:00
isaacclad 21555cc3cc Simplify pay wait copy and scale Paystack to fill the loading area.
Deploy Ladill POS / deploy (push) Successful in 1m57s
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:55:55 +00:00
isaacclad 97cd3c8647 Render Paystack flush in the sheet loading area without a second stage.
Deploy Ladill POS / deploy (push) Successful in 2m28s
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:43:42 +00:00
isaacclad 77c7897e57 Force Paystack checkout into the sheet mount on first insert.
Deploy Ladill POS / deploy (push) Successful in 45s
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:36:14 +00:00
isaacclad fe9137a754 Unify payment sheet to one POS design across all apps.
Deploy Ladill POS / deploy (push) Successful in 1m16s
Loading uses the standard white bottomsheet/modal; once Paystack Inline is
ready the host shell goes transparent so only Paystack's card shows on the
backdrop — no oversized second white frame on Merchant/Give/etc.
2026-07-21 23:15:47 +00:00
isaacclad 56d3c749c8 Tighten payment sheet UI to match POS single-surface checkout.
Deploy Ladill POS / deploy (push) Successful in 1m13s
When Paystack Inline is ready: widen desktop panel for channel sidebar, collapse
to a minimal header, hide footer trust line, and re-pin the checkout iframe to
the sheet body so it does not read as a second modal on top of Ladill chrome.
2026-07-21 23:02:37 +00:00
isaacclad a95f84e0e0 Contain Paystack Inline checkout inside Ladill sheet mount.
Deploy Ladill POS / deploy (push) Successful in 1m20s
Redirect Paystack iframes into the bottomsheet/modal body (where the spinner
is) instead of allowing a second full-viewport Paystack modal on top. Hide
Paystack background dimmer; keep Ladill header/close chrome.
2026-07-21 22:32:01 +00:00
isaacclad 2c763cf46a Fix Paystack Fullscreen permission policy for Inline iframes.
Deploy Ladill POS / deploy (push) Successful in 1m4s
Pre-set allow=fullscreen on Paystack iframes before navigation (createElement
hook + MutationObserver on allow/src/id), re-apply if Paystack overwrites
allow, and send Permissions-Policy HTTP headers so checkout.paystack.com can
use fullscreen inside the in-app sheet.
2026-07-21 22:17:20 +00:00
isaacclad ec8fe8611f Allow Paystack checkout iframes to use fullscreen in POS.
Deploy Ladill POS / deploy (push) Successful in 52s
Patch Inline iframes after mount so fullscreen/payment permissions work
inside the POS payment bottomsheet.
2026-07-21 22:09:58 +00:00
isaacclad dc65bc44ac Fix POS payment sheet host and harden Inline launch.
Deploy Ladill POS / deploy (push) Successful in 42s
Use this.\$store in the host component so the bottomsheet opens, and share
the hardened Paystack sheet sync path used across apps.
2026-07-21 21:55:45 +00:00
isaacclad 26b3201822 Fix POS payment bottomsheet wrap and store reactivity.
Deploy Ladill POS / deploy (push) Successful in 40s
Mirror paymentCheckout into local Alpine state so the teleported sheet opens,
and restore the always-visible bottomsheet/modal shell around Inline.
2026-07-21 21:43:52 +00:00
isaacclad 54a8c91ab1 Hide Ladill One from the POS app launcher until launch.
Deploy Ladill POS / deploy (push) Successful in 1m25s
2026-07-21 21:23:21 +00:00
isaacclad 5c23df9561 Fix POS Paystack double modal and keep checkout in-app.
Pass access_code into the payment sheet, launch Paystack Inline only,
and hide Ladill chrome after Inline loads so register Card/MoMo shows
a single payment interface.
2026-07-21 21:23:21 +00:00
isaaccladandCursor 4dcc46e319 Make POS payment routing plan-aware.
Deploy Ladill POS / deploy (push) Successful in 37s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 19:47:11 +00:00
isaacclad ca08f303c0 Restore Paystack Inline in-page sheet/modal; stop separate-browser checkout.
Deploy Ladill POS / deploy (push) Successful in 2m8s
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 497cdfbe8e Open Paystack from the Pay click gesture, not after fetch.
Deploy Ladill POS / deploy (push) Successful in 54s
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:13:56 +00:00
isaacclad c9c8278500 Fix Paystack sheet: stop iframe embeds that Paystack blocks.
Deploy Ladill POS / deploy (push) Successful in 38s
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:17 +00:00
isaacclad 4f97b6ff70 Present Paystack checkout in a responsive mobile sheet and desktop modal.
Deploy Ladill POS / deploy (push) Successful in 37s
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 2818edc75f Sync launcher (Merchant/Mini/Give/One) and DemoWorld Care specialty RBAC staff.
Deploy Ladill POS / deploy (push) Successful in 1m3s
2026-07-21 14:25:08 +00:00
isaaccladandCursor fbd4f39f0d Sync DemoWorld specialty staff ownerEmailForStaff fix.
Deploy Ladill POS / deploy (push) Successful in 1m7s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 15:29:00 +00:00
isaaccladandCursor b4cbdab332 Sync DemoWorld: Care receptionist without queue; add Queue operators.
Deploy Ladill POS / deploy (push) Successful in 4m6s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 10:16:53 +00:00
isaaccladandCursor 022f18084a Seed DemoWorld staff and customer continuity for POS demo data
Deploy Ladill POS / deploy (push) Successful in 56s
Replace ad-hoc demo-cashier-{id} accounts with DemoWorld staff who hold
a pos role, mirrored locally by email until SSO remaps to public_id.
Sales for the first named customers now use DemoWorld people (name +
phone) instead of generic "Cash Customer N" labels, and staff logins
skip the login reseed so mid-demo state survives.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 13:33:29 +00:00
isaacclad c520e14a19 Fix deploy tmp paths: drop unset gitea.run_attempt.
Deploy Ladill POS / deploy (push) Successful in 1m54s
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:34 +00:00
isaaccladandCursor 4d49336f96 Reseed demo tenants after each SSO login.
Deploy Ladill POS / deploy (push) Successful in 1m34s
Demo Free/Pro/Enterprise accounts wipe and reload sample data on
authorization-code SSO callbacks so every sales walkthrough starts clean.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 11:20:18 +00:00
isaaccladandCursor ff098c0a29 Add POS demo:seed for register walkthroughs.
Deploy Ladill POS / deploy (push) Successful in 2m34s
Seed locations, products, and cash sales within Free caps and Pro multi-site data.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 10:03:57 +00:00
isaacclad 49a0020522 fix(pos): plain hardware benefit copy without special styling
Deploy Ladill POS / deploy (push) Successful in 1m1s
Drop Ladill-provided wording and indigo highlight on Pro plan hardware
items; keep Customer display unstyled on Business.
2026-07-16 13:14:37 +00:00
isaacclad fba2665cad feat(pos): list Customer display on Business plan benefits
Deploy Ladill POS / deploy (push) Successful in 56s
2026-07-16 12:17:56 +00:00
isaacclad 5d32a0723b feat(pos): Pro GHS 1790/mo with Ladill-provided hardware kit
Deploy Ladill POS / deploy (push) Has been cancelled
Raise POS Pro by GHS 1000 (790 → 1790). Pro includes a Ladill-provided
payment terminal, receipt printer, and barcode scanner; track payment
terminals as a device type.
2026-07-16 12:17:32 +00:00
isaacclad 05346ea21e chore(pos): drop accidental testing disk artifact from From-name commit
Deploy Ladill POS / deploy (push) Successful in 42s
2026-07-16 12:01:48 +00:00
isaacclad 8e4ee71788 fix(email): use client/org name as From display, not Ladill product
Deploy Ladill POS / deploy (push) Has been cancelled
Customer-facing outbound mail should appear from the business (organizer,
clinic, company, location), not the Ladill product brand.
2026-07-16 12:01:35 +00:00
isaacclad 4546c2ab8c Move Devices under Settings like Branches and Team.
Deploy Ladill POS / deploy (push) Successful in 29s
Drop Devices from the main sidebar, surface a Devices card on the Settings
page, and nest device routes under /settings/devices with legacy redirects.
2026-07-15 23:56:03 +00:00
isaacclad 29f2c96c2b Move Devices under Sales in the POS sidebar.
Deploy Ladill POS / deploy (push) Successful in 45s
Keep Devices with the main product nav instead of the bottom Settings strip.
2026-07-15 23:50:30 +00:00
isaacclad ede4aaa10c Add public token-gated kitchen display for POS devices.
Deploy Ladill POS / deploy (push) Successful in 46s
Kitchen display devices open a full-screen KDS without staff login,
with feed/stream/bump over the device token. Shared kitchen board
logic is extracted so the signed-in Kitchen page stays in sync.
2026-07-15 22:52:28 +00:00
isaacclad c01518b0ee Add Frontdesk-style Devices registry for POS hardware.
Deploy Ladill POS / deploy (push) Successful in 42s
Register tills, customer displays, kitchen screens, printers, scanners,
and tablets per branch. Customer displays share the branch display token
and mark online when the public screen polls; stale devices go offline
on a schedule.
2026-07-15 21:49:21 +00:00
isaacclad 46c60259c9 Fill customer display promo card with cover image, no shadow.
Deploy Ladill POS / deploy (push) Successful in 43s
Drop the soft shadow and letterboxing so the promo photo edge-to-edge
covers the hero card via object-cover.
2026-07-15 21:31:13 +00:00
isaacclad 72aabf5429 Fit promo image fully inside the customer display card.
Deploy Ladill POS / deploy (push) Successful in 36s
Center and clamp the image with object-contain so it scales within the
card bounds without cropping or overflowing.
2026-07-15 21:23:24 +00:00
isaacclad 7d1e4a65d7 Redesign customer display idle promo as a hero layout.
Deploy Ladill POS / deploy (push) Successful in 1m5s
Make the promo image fill the kiosk instead of a small thumbnail, with
side-by-side copy on landscape screens and a calmer type hierarchy.
2026-07-15 21:19:33 +00:00
isaacclad e5b4f3d654 Show promo image again on the idle customer display.
Deploy Ladill POS / deploy (push) Successful in 58s
Restore the configured promo image above the welcome copy when the
register cart is empty so store branding still surfaces to customers.
2026-07-15 21:15:13 +00:00
isaacclad 836aa83f41 Gate payment gateway behind Pro and Business plans.
Deploy Ladill POS / deploy (push) Successful in 1m9s
Free accounts keep cash sales only; connecting a gateway and card/MoMo
checkout require a paid plan, with settings upsell copy for free users.
2026-07-15 21:04:09 +00:00
isaacclad 689c9924df Simplify customer display branding on empty cart.
Deploy Ladill POS / deploy (push) Successful in 42s
Drop the centered idle logo and render the header logo without a card
so brand marks stay clean and uncluttered.
2026-07-15 16:34:31 +00:00
isaacclad aed0722641 Restyle customer display to match Frontdesk kiosk UI.
Deploy Ladill POS / deploy (push) Successful in 41s
Use a light shell, soft indigo accents, and object-contain logos so
brand marks are not square-cropped on the dual-screen customer view.
2026-07-15 16:31:23 +00:00
isaacclad 600aedb59d Email digital receipts, add promo settings, and apply tips at charge.
Deploy Ladill POS / deploy (push) Successful in 31s
Send real receipt emails from the customer display and sale page, store
branch promo content for the idle screen, and fold selected tips into totals.
2026-07-15 16:10:20 +00:00
isaacclad 468346b183 Wire POS register loyalty earn and redeem through CRM.
Deploy Ladill POS / deploy (push) Has been cancelled
Redeem at charge, earn on payment, reverse on cancel, and surface
balances on the till, customer display, sales, and receipts.
2026-07-15 15:46:28 +00:00
isaacclad 38b7f96714 Add dual-screen customer display for the register.
Deploy Ladill POS / deploy (push) Successful in 56s
Token-gated full-screen customer view shows order, payment QR, tips,
signature, receipt, and promo phases while the till keeps operator UI.
2026-07-15 15:35:44 +00:00
isaacclad 5e31bdf629 Limit Pro to 3 branches and leave Business unlimited.
Deploy Ladill POS / deploy (push) Successful in 2m15s
Enforce plan location caps in SubscriptionService, surface upgrade
copy on plans and branch settings, and cover the limits in tests.
2026-07-15 15:24:51 +00:00
isaacclad e2b608a506 Keep POS retail catalog product-only and raise Pro pricing.
Deploy Ladill POS / deploy (push) Successful in 46s
Retail still reads live CRM products only (not services), products mode follows the acting branch, and suite Pro/Business defaults match the tenfold price update.
2026-07-15 13:54:53 +00:00
isaacclad 7c20cf705a Frame POS checkout sheet for till operators.
Deploy Ladill POS / deploy (push) Successful in 1m16s
Use operator-facing copy and merchant email so Card/MoMo checkout is for staff handing the screen to a customer, not self-serve buyers.
2026-07-15 13:23:29 +00:00
isaacclad 69ec45eea6 Fix 500 when saving payment gateway credentials.
Deploy Ladill POS / deploy (push) Successful in 1m32s
Implement the missing SettingsController::persistGateway method so merchant Paystack/Flutterwave/Hubtel keys can be saved, and cover create + keep-blank-secrets paths with tests.
2026-07-15 13:11:02 +00:00
isaaccladandCursor 3c0172f098 Embed POS checkouts in a modal/sheet using the seller email.
Deploy Ladill POS / deploy (push) Successful in 40s
Card/MoMo always initializes with the merchant email, and Paystack/Flutterwave/Hubtel open in-page (desktop modal, mobile bottomsheet) instead of a full redirect.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 08:29:07 +00:00
isaaccladandCursor 3ea9fdfe33 Replace Ladill Pay POS checkouts with merchant gateways.
Deploy Ladill POS / deploy (push) Successful in 30s
Register Card/MoMo payments through merchant Paystack, Flutterwave, or Hubtel settings so takings settle 100% to the business.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 01:26:22 +00:00