Add 2D barcode scanning + connect_id search

- Add QR_CODE, DATA_MATRIX, PDF_417, AZTEC to barcode scanner hints
  so serial number stickers with 2D barcodes can be scanned
- Update /api/assets/search to also match connect_id so full
  Connect IDs (e.g. VM-05912-0000068454) work when scanned
- Bump SW cache v5→v6, footer v3.2→v3.3
This commit is contained in:
2026-05-29 07:55:44 -04:00
parent 2bdcfe0bae
commit 8c8f8a261c
3 changed files with 10 additions and 5 deletions
+2 -1
View File
@@ -1129,7 +1129,8 @@ def list_assets(
def search_by_machine_id(machine_id: str = Query(...)):
conn = get_db()
row = conn.execute(
"SELECT * FROM assets WHERE machine_id = ?", (machine_id,)
"SELECT * FROM assets WHERE machine_id = ? OR connect_id = ?",
(machine_id, machine_id),
).fetchone()
conn.close()
if row is None:
+7 -3
View File
@@ -1091,7 +1091,7 @@
</button>
</nav>
<div class="drawer-footer">
<div style="margin-bottom:6px;">Canteen Asset Tracker v3.2</div>
<div style="margin-bottom:6px;">Canteen Asset Tracker v3.3</div>
<div style="font-size:11px;line-height:1.5;margin-bottom:6px;">
<kbd>Esc</kbd> to close · <kbd>Ctrl</kbd>+<kbd>/</kbd> to search · ❓ for help
</div>
@@ -2363,8 +2363,8 @@
// BARCODE MODE
// ═══════════════════════════════════════════════════════════════════════
function _barcodeHints() {
// Restrict to 1D barcode formats only — much faster and more accurate
// than scanning all formats (QR, DataMatrix, PDF417, Aztec, etc.)
// All formats — 1D (Code 128, EAN, UPC, etc.) + 2D (QR, DataMatrix,
// PDF417, Aztec) for serial number stickers with 2D barcodes.
const hints = new Map();
const fmts = [
ZXing.BarcodeFormat.CODE_128,
@@ -2376,6 +2376,10 @@
ZXing.BarcodeFormat.CODE_93,
ZXing.BarcodeFormat.ITF,
ZXing.BarcodeFormat.CODABAR,
ZXing.BarcodeFormat.QR_CODE,
ZXing.BarcodeFormat.DATA_MATRIX,
ZXing.BarcodeFormat.PDF_417,
ZXing.BarcodeFormat.AZTEC,
];
hints.set(ZXing.DecodeHintType.POSSIBLE_FORMATS, fmts);
hints.set(ZXing.DecodeHintType.TRY_HARDER, true);
+1 -1
View File
@@ -3,7 +3,7 @@
// Caches app shell + CDN deps. Network-first for API, cache fallback for static.
// ═══════════════════════════════════════════════════════════════════════════
const CACHE_NAME = 'canteen-v5';
const CACHE_NAME = 'canteen-v6';
// App shell — core resources needed to boot the PWA
const APP_SHELL = [