3.3 KiB
Supplier Select Modal — Two-Step Wizard Redesign
Date: 2026-05-25 Status: Approved
Problem
The current supplier-select-modal has two tabs — "Full Order" and "By Item" — that are mutually exclusive: selecting suppliers in one mode makes the other irrelevant. But the tab UI implies they are equal parallel options, causing confusion. There is no enforcement preventing a user from switching tabs mid-flow with selections already made.
Solution
Replace the tab bar with a two-step wizard flow:
- Step 1 — Choose Method: The modal opens on a method-selection screen with two large clickable cards. No tabs. No supplier list yet.
- Step 2 — Select Suppliers: Clicking a card transitions into that mode's supplier selection UI (the existing Full Order list or By Item per-item dropdowns, structurally unchanged).
Going back always clears selections (fresh start — no preserved state per mode).
Step 1: Method Selection Screen
Header:
- Title: "Request for Quotation"
- Subtitle: "How do you want to assign suppliers?"
- Close (×) button
Body — two clickable cards (full-width, stacked vertically):
| Card | Icon | Title | Subtitle |
|---|---|---|---|
| Full Order | 📦 | Full Order | One set of suppliers handles the entire purchase request |
| By Item | 🔀 | By Item | Assign different suppliers to specific items in this request |
Each card has a right-pointing chevron (›). On hover: border turns blue, background tints to #f8fbff. Clicking immediately transitions to Step 2 — no confirmation needed.
Footer: Cancel button only (no Save & Continue on Step 1).
Step 2: Supplier Selection Screen
Header (replaces tab bar entirely):
- Top row: "← Change method" link (blue, with left chevron) · mode badge (e.g.
📦 Full Orderin blue pill or🔀 By Itemin green pill) - Below: Title "Select Suppliers", subtitle "Choose who receives the quote request"
Clicking "← Change method" returns to Step 1 and clears all current selections (checkboxes unchecked, channel inputs reset).
Body: Identical to the existing Full Order pane or By Item pane depending on the chosen mode. No structural changes to the selection UI itself.
Footer: Same as current — count label left, Cancel + "Save & Continue →" right.
State & Form Submission
- The hidden
<input name="mode">continues to drive the server-side logic (globalvsby_item). - On "← Change method": all checkboxes are unchecked programmatically, channel inputs reset to
email,modeinput cleared, then transition back to Step 1. - Form submission logic (
submitSuppliers()) is unchanged.
What Does NOT Change
- The supplier list rendering (search, checkboxes, channel toggles, "Added" badges)
- The By Item per-item dropdown panels
- The per-supplier channel section in By Item mode
- Form action, method, CSRF, field names
openSupplierModal()/closeSupplierModal()entry points used by the parent view- The
pipe-modalCSS class and backdrop behaviour
Files Affected
| File | Change |
|---|---|
resources/views/components/purchase/supplier-select-modal.blade.php |
Replace tab bar with Step 1 method-selection HTML; add mode badge + back link to Step 2 header; add showStep() / goBack() JS functions |
No controller, route, or migration changes required.