feat: BarcodeDetector nativo + camera selector + recipe dedup + remote debug logging

- Scanner: usa BarcodeDetector API nativa (Chrome Android) come primario, Quagga come fallback
- Settings: aggiunta tab Fotocamera per scegliere posteriore/anteriore/specifica
- Scanner feedback: barra verde (scansione attiva), gialla (barcode rilevato)
- Ricette: invio titoli ricette del giorno per evitare duplicati nello stesso giorno
- Debug: sistema di logging remoto (client_debug.log) per diagnostica da dispositivi chioscati
- Fix: permessi .env per scrittura da Apache
This commit is contained in:
dadaloop82
2026-03-12 17:32:54 +00:00
parent 3a7fce49a0
commit c5f22fdf42
7 changed files with 738 additions and 77 deletions
+26
View File
@@ -863,6 +863,22 @@ body {
background: var(--danger);
box-shadow: 0 0 10px var(--danger);
animation: scanLine 2s ease-in-out infinite;
transition: background 0.2s, box-shadow 0.2s, height 0.2s;
}
/* While Quagga is actively scanning frames */
.scanner-line.scanning {
background: #00c853;
box-shadow: 0 0 12px #00c853;
animation: scanLineActive 0.8s ease-in-out infinite;
}
/* Barcode partially detected — strong pulse */
.scanner-line.detecting {
background: #ffd600;
box-shadow: 0 0 20px #ffd600, 0 0 40px rgba(255,214,0,0.4);
height: 5px;
animation: scanLineDetect 0.3s ease-in-out infinite;
}
@keyframes scanLine {
@@ -870,6 +886,16 @@ body {
50% { opacity: 0.3; }
}
@keyframes scanLineActive {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
@keyframes scanLineDetect {
0%, 100% { opacity: 1; transform: scaleY(1); }
50% { opacity: 0.7; transform: scaleY(2); }
}
.scan-result {
background: var(--bg-card);
border-radius: var(--radius);