Commit Graph

28 Commits

Author SHA1 Message Date
dadaloop82 e300f56c52 Modifica prodotto: rimossa immagine rotta dal form 2026-03-13 14:24:42 +00:00
dadaloop82 d92b72cfae Fix: svuota ricerca, rimuovi autocomplete prodotto nuovo, camera più grande, modalità spesa, fix duplicati chat 2026-03-13 14:20:00 +00:00
dadaloop82 cbb7d53e78 Screensaver: orologio più grande, frasi dinamiche fade-in/out, font fact ingrandito 2026-03-13 07:16:55 +00:00
dadaloop82 196c38fd23 📦 Backup database automatico - 2026-03-13 03:00 2026-03-13 03:00:01 +00:00
dadaloop82 bf7941b0fd Fix: allow 'waste' transaction type for thrown-out items (CHECK constraint) 2026-03-12 18:39:09 +00:00
dadaloop82 53fb85b42b Weekly recipe variety + soften fridge priority (suggestion, not mandatory) 2026-03-12 18:20:47 +00:00
dadaloop82 f2b090f107 Move recipes, chat, settings to shared DB — sync across devices, 1 recipe per meal per day 2026-03-12 18:06:50 +00:00
dadaloop82 d73a471500 Global remote logging for all operations, stop tracking runtime files 2026-03-12 17:35:53 +00:00
dadaloop82 c5f22fdf42 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
2026-03-12 17:32:54 +00:00
dadaloop82 537a351f73 📦 Backup database automatico - 2026-03-12 03:00 2026-03-12 03:00:01 +00:00
dadaloop82 e6a9fb06a7 fix: cache-busting + validazione conf + reset form prodotto
- Aggiunto version param a CSS/JS per forzare reload browser
- startManualEntry() resetta pf-conf-size-row correttamente
- Validazione: se unit=conf ma dimensione non specificata, errore
- onAddUnitChange: scrollIntoView quando conf-size-row appare
- Reset campi conf quando si cambia unità nel form aggiungi
2026-03-11 15:54:20 +00:00
dadaloop82 bf2e137502 feat: confezioni (conf) chiede dimensione singola confezione
- Nuovo campo package_unit in DB (migrazione automatica)
- Form aggiungi/modifica: quando si seleziona 'conf', appare campo per
  specificare il contenuto della singola confezione (es. 300g, 2L)
- Visualizzazione: '3 conf (da 300g)' in inventario, dettaglio, butta
- formatQuantity aggiornato con supporto package_unit
- API: salva/restituisce package_unit in tutti gli endpoint
- Ricette e chat: contesto arricchito con info confezione
- CSS: stili per il nuovo campo conf-size
2026-03-11 15:43:44 +00:00
dadaloop82 af3b5941a0 Add Gemini Chat: conversational AI assistant for kitchen help
- Gemini star icon button next to camera in header
- Full chat page with message bubbles, typing indicator
- Conversation history persisted in localStorage (last 50 messages)
- System context includes: full inventory with expiry dates, appliances, dietary restrictions
- Multi-turn conversation with Gemini 2.0 Flash
- Pre-built suggestion chips: snack, juice/smoothie, light meal, use expiring items
- Clear chat button for fresh conversations
- Indigo/purple themed UI matching Gemini branding
- PHP gemini_chat API endpoint with inventory context injection
2026-03-11 15:26:19 +00:00
dadaloop82 ff1f27fe8d Add 'Da revisionare' dashboard section for suspicious quantities
- Flags inventory items with abnormally small or large quantities
- Per-unit thresholds (pz/conf, g, kg, ml, l)
- Confirm button (✓) to mark as correct (stored in localStorage)
- Edit button (✏️) opens existing edit modal
- Smooth dismiss animation on confirm
- Amber-themed styling to distinguish from expiry alerts
2026-03-11 13:48:24 +00:00
dadaloop82 c6d7c1f27d Fix tonno 199.9g→100g e frazione più grande (1rem) 2026-03-11 13:40:22 +00:00
dadaloop82 df56d8dc76 Fix conversione unità ricette + indicatore confezione
- Fix qty_number nelle ricette: validazione e conversione automatica
  delle unità di misura (g↔kg, ml↔L, g→pz con default_quantity)
- Sanity check: cap qty_number al disponibile, correzione valori
  assurdamente piccoli dovuti a errori di Gemini
- Aggiunto indicatore confezione (¼, ½, ¾, pieno) vicino alla
  quantità nell'inventario e nella barra stato dopo scansione
- Aggiunto default_quantity nella query inventory_list
- Nuova funzione formatPackageFraction() per calcolo frazioni
2026-03-11 13:36:21 +00:00
dadaloop82 469aadb8fc Aggiunta pagina impostazioni, preview prodotto migliorata, gestione inventario smart e ricette avanzate
- Icona ingranaggio nella navbar, salvataggio su localStorage e .env
- Preview prodotto più grande dopo scansione barcode
- Controllo inventario dopo scan: mostra quantità disponibile in grande
- 3 pulsanti contestuali (AGGIUNGI/USA/BUTTA) se prodotto già presente
- Funzionalità BUTTA con modale per quantità parziale o totale
- Quantità prominenti nella lista inventario
- Quantità visibili negli alert scadenza/scaduti in dashboard
- Unità di misura modificabile nella modale di modifica inventario
- Opzioni ricetta: Pasto Veloce, Poca Fame, Priorità Scadenze, ecc.
- Gestione smart quantità ricette (evita rimasugli inutilizzabili)
- Elettrodomestici configurabili per suggerimenti ricette
- Restrizioni alimentari nel prompt ricette
- Endpoint API: save_settings, get_settings
2026-03-11 13:08:02 +00:00
dadaloop82 05cc2b9138 📦 Backup database automatico - 2026-03-11 03:00 2026-03-11 03:00:01 +00:00
dadaloop82 77ed2d6964 feat: auto-aggiunta a Bring! quando un prodotto finisce
- useFromInventory controlla se il prodotto è esaurito ovunque (qty=0 in tutte le location)
- Se finito, lo aggiunge automaticamente alla lista Bring! con nome e marca
- Toast notifica '🛒 Prodotto finito → aggiunto a Bring!' in tutte le UI (ricetta, uso diretto, usa tutto)
- Prosciutto crudo light e Philadelphia Light aggiunti manualmente a Bring!
2026-03-10 18:18:40 +00:00
dadaloop82 b9f3eb3301 fix: ricorda ingredienti già usati nella ricetta cachata
- Quando clicchi 'Usa', salva used=true nell'ingrediente nel localStorage
- Al reload, ingredienti già usati mostrano '✔️ Scalato' disabilitato
- Evita di scalare lo stesso ingrediente due volte per sbaglio
2026-03-10 17:53:17 +00:00
dadaloop82 8650b377a4 feat: mostra marca, scadenza e posizione negli ingredienti ricetta
- Backend: aggiunge brand e expiry_date all'arricchimento ingredienti
- Frontend: sotto ogni ingrediente dalla dispensa mostra:
  - Marca in corsivo (se presente)
  - Icona posizione (🧊 Frigo/Freezer, 🗄️ Dispensa)
  - Scadenza con colore urgenza ( scaduto, 🔴 <3gg, 🟡 <7gg, 📅 data)
- Nuovo stile CSS per riga dettaglio ingrediente
2026-03-10 17:39:49 +00:00
dadaloop82 991a4a9b99 DB update 2026-03-10 16:15:46 +00:00
dadaloop82 19992e6199 Auto-refresh UI after every data mutation
- Added refreshCurrentPage() to reload active page data
- deleteInventoryItem/submitEditInventory now refresh current page (works from dashboard or inventory)
- removeBringItem/addSelectedSuggestions update dashboard shopping count
- Track current page ID for context-aware refresh
2026-03-10 16:15:01 +00:00
dadaloop82 64696dfaa4 Fix: shopping count uses 'purchase' not 'items' from Bring API 2026-03-10 16:12:24 +00:00
dadaloop82 9fb2c7ab03 Freezer-aware expired safety + shopping count in dashboard
- getExpiredSafety: items in freezer get bonus days (carne/pesce +3m, verdura/frutta +6m, latticini/pane +2m, altro +4m)
- Expired items show location icon (❄️/🧊) for context
- Dashboard: replaced 'Totale' stat card with 'Spesa' showing Bring! list count
- Added loadShoppingCount() to fetch count from Bring! API
2026-03-10 16:10:30 +00:00
dadaloop82 223ceb71b0 📦 Backup database automatico - 2026-03-10 13:16 2026-03-10 13:16:45 +00:00
dadaloop82 3f4d1bd194 Aggiunta ricerca rapida per nome prodotto (frutta/verdura sfusa) 2026-03-10 13:04:53 +00:00
dadaloop82 24dd88b5cf Add daily automatic database backup to GitHub
- Remove data/ from .gitignore (keep WAL/SHM excluded)
- Add backup.sh script: commits and pushes DB changes daily
- Cron job at 3:00 AM: /var/www/html/dispensa/backup.sh
- Include initial database snapshot
2026-03-10 12:38:20 +00:00