← back to Dw Photo Capture
feat: onload chooser — 3 white-on-black pills (Add New SKU / Update SKU / Check Sample In), centered 3 rows. Routes: Add→new-item modal, Update→live scan, Check→front/back identify. ⌂ home button reopens; skip→ goes to catalog. Verified on mobile viewport, 0 pageerrors.
2e4814d4efbd010ff7c6cb9b53397c16d56b604c · 2026-07-06 19:23:20 -0700 · Steve Abrams
Files touched
Diff
commit 2e4814d4efbd010ff7c6cb9b53397c16d56b604c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 6 19:23:20 2026 -0700
feat: onload chooser — 3 white-on-black pills (Add New SKU / Update SKU / Check Sample In), centered 3 rows. Routes: Add→new-item modal, Update→live scan, Check→front/back identify. ⌂ home button reopens; skip→ goes to catalog. Verified on mobile viewport, 0 pageerrors.
---
public/index.html | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/public/index.html b/public/index.html
index 2ac2722..7b9a116 100644
--- a/public/index.html
+++ b/public/index.html
@@ -158,6 +158,15 @@
.add-field{margin-bottom:10px;flex:1}.add-field label{display:block;font-size:11px;color:#9a917d;margin-bottom:3px}
.add-field input,.add-field select{width:100%;box-sizing:border-box;background:#0f0e0b;border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--ink);font-size:15px}
.add-row{display:flex;gap:10px}
+ /* onload chooser — three white pills on black */
+ #homeScreen{position:fixed;inset:0;z-index:200;background:#000;display:flex;align-items:center;justify-content:center}
+ #homeScreen[hidden]{display:none}
+ .home-inner{display:flex;flex-direction:column;gap:16px;align-items:center;width:100%;max-width:340px;padding:24px}
+ .home-title{color:#fff;font-size:14px;letter-spacing:.1em;text-transform:uppercase;opacity:.55;margin-bottom:16px}
+ .home-pill{width:100%;background:#fff;color:#000;border:none;border-radius:999px;padding:20px;font-size:19px;font-weight:700;cursor:pointer}
+ .home-pill:active{transform:scale(.98)}
+ .home-skip{margin-top:10px;background:none;border:none;color:#fff;opacity:.4;font-size:14px;cursor:pointer}
+ #homeBtn{background:none;border:none;color:var(--ink);opacity:.5;font-size:18px;cursor:pointer;float:right}
.ed-panel{flex:0 0 auto;background:var(--card);border-top:1px solid var(--line);padding:12px 14px max(14px,env(safe-area-inset-bottom));max-height:54vh;overflow-y:auto}
.ed-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ed-head .t{font:600 13px/1 "SF Pro Display",sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--gold)}
@@ -202,8 +211,18 @@
</style>
</head>
<body>
+<!-- onload chooser: three simple pills, white on black, centered -->
+<div id="homeScreen">
+ <div class="home-inner">
+ <div class="home-title">DW Sample Station</div>
+ <button class="home-pill" data-act="add">Add New SKU</button>
+ <button class="home-pill" data-act="update">Update SKU</button>
+ <button class="home-pill" data-act="check">Check Sample In</button>
+ <button class="home-skip" data-act="skip">skip →</button>
+ </div>
+</div>
<header>
- <h1>Mobile DW SKU <span>Photos</span> <a href="/selfcheck" class="ver" title="tap for self-check">__VER__</a></h1>
+ <h1>Mobile DW SKU <span>Photos</span> <a href="/selfcheck" class="ver" title="tap for self-check">__VER__</a> <button id="homeBtn" title="home">⌂</button></h1>
<div class="bar"><i id="prog"></i></div>
<div class="meta"><span id="count">…</span><span id="remain"></span></div>
<div class="controls">
@@ -1418,6 +1437,16 @@ $('#addVendor').addEventListener('change',e=>{ const o=e.target.selectedOptions[
$('#addPhotoTile').addEventListener('click',()=>$('#addPhotoInput').click());
$('#addPhotoInput').addEventListener('change',async e=>{ const f=e.target.files[0]; if(f){ _addPhoto=await downscale(f,1400); $('#addThumb').style.backgroundImage=`url('${_addPhoto}')`; $('#addThumb').textContent=''; } });
$('#addPreview').addEventListener('click',addPreview);
+
+// ── onload chooser: Add New SKU · Update SKU · Check Sample In ──
+function routeHome(act){ $('#homeScreen').hidden=true;
+ if(act==='add') openAddModal();
+ else if(act==='update') openLiveScan();
+ else if(act==='check') openFbModal();
+ // 'skip' → just show the catalog
+}
+document.querySelectorAll('#homeScreen .home-pill, #homeScreen .home-skip').forEach(b=>b.addEventListener('click',()=>routeHome(b.dataset.act)));
+$('#homeBtn').addEventListener('click',()=>{ $('#homeScreen').hidden=false; });
$('#scanvideo').addEventListener('click',resumeScan); // tap the paused overlay to resume scanning
$('#scanStatus').addEventListener('click',resumeScan);
$('#scanCancel').addEventListener('click',closeLiveScan);
← 94d5ee9 5x: app clean across 2 sweeps — M1/M2/B4 pass, 85 tests, bot
·
back to Dw Photo Capture
·
chore: embed-daemon.sh — resumable batch loop (20k chunks + 496dc6c →