Vierte Scan-Funktion "Zählen": laufende Anzeige, keine Buchung
Neue Funktion in scan-modes.js (Merkmal continuousCount), verdrahtet in main.js ueber denselben Zeitgeber/dieselbe Ueberlappungssperre wie die Barcode-Dauersuche (continuousSearchLoop ruft jetzt runCountAttempt() zusaetzlich zu runSearchAttempt(); jeder bricht selbst ab, wenn die Funktion nicht passt) - kein zweiter, paralleler Mechanismus. Kein "Modul scannen"-Knopf, keine Treffer-Rueckmeldung, kein roter Dialog, keine Stapel-Zuweisung; die grosse Zaehlanzeige (scan-view.js/styles.css) ist reine Anzeige und speichert nichts. buildRecognitionAdapters() liefert fuer "Zählen" zusaetzlich leere Adapter (Absicherung gegen den seltenen Datei-Ersatzweg ohne Kamera). Die drei bestehenden Funktionen bleiben unveraendert; einzige notwendige Anpassung an scan-modes.test.js war die Anzahl-Pruefung (3 -> 4 Funktionen). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ export function renderScanView(root, { onCapture, onUndo, onOpenList, onPickFile
|
||||
<div class="camera">
|
||||
<video id="preview" playsinline muted></video>
|
||||
<div class="frame"></div>
|
||||
<div class="count-display" id="count-display" hidden aria-live="polite"></div>
|
||||
</div>
|
||||
<div class="status" id="status"></div>
|
||||
<button class="action capture" id="capture" hidden>Modul scannen</button>
|
||||
@@ -30,6 +31,7 @@ export function renderScanView(root, { onCapture, onUndo, onOpenList, onPickFile
|
||||
const frameEl = root.querySelector('.frame');
|
||||
const captureEl = root.querySelector('#capture');
|
||||
const modeButtonEl = root.querySelector('#mode-button');
|
||||
const countDisplayEl = root.querySelector('#count-display');
|
||||
|
||||
// FRAME_INSET (camera.js) ist die einzige Quelle der Rahmenmasse - sowohl
|
||||
// fuer diesen sichtbaren Rahmen als auch fuer den nativen Ausschnitt
|
||||
@@ -129,5 +131,27 @@ export function renderScanView(root, { onCapture, onUndo, onOpenList, onPickFile
|
||||
setFrameDetected(detected) {
|
||||
frameEl.classList.toggle('detected', detected);
|
||||
},
|
||||
|
||||
/**
|
||||
* Blendet die grosse Zaehlanzeige ein oder aus (nur in Funktion
|
||||
* "Zählen" sichtbar, siehe applyMode() in main.js). Beim Ausblenden wird
|
||||
* die zuletzt angezeigte Zahl geloescht, damit beim naechsten Wechsel in
|
||||
* diese Funktion nicht kurz eine veraltete Zahl aufblitzt.
|
||||
* @param {boolean} visible
|
||||
*/
|
||||
setCountVisible(visible) {
|
||||
countDisplayEl.hidden = !visible;
|
||||
if (!visible) countDisplayEl.textContent = '';
|
||||
},
|
||||
|
||||
/**
|
||||
* Zeigt die zuletzt ermittelte Anzahl gefundener Fundstuecke (siehe
|
||||
* count-objects.js) - gross und aus Armlaenge lesbar, aktualisiert sich
|
||||
* mit jedem Durchlauf der Dauerzaehlung.
|
||||
* @param {number} count
|
||||
*/
|
||||
setCount(count) {
|
||||
countDisplayEl.textContent = String(count);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user