operatore: immagine del task visione (DXF compare, misura camera) non in fit, pagina con scorrimento #96

Closed
opened 2026-10-24 16:10:57 +00:00 by Adriano · 1 comment
Owner

Segnalato da Adriano 24/10/2026 su TMF da sorgente (daitarn): dopo «Acquisisci dalla camera» (e «Acquisisci immagine») nel task dxf_compare l'immagine non si vede intera in fit; le schermate dell'operatore non devono avere barre di scorrimento.

CAUSA (letta nel codice, ramo lavoro/daitarn-tmf-dxfcal 552f96b): src/frontend/flask_app/templates/measure/task_execute.html:534-563 — pannello visione 'flex-1 overflow-auto', img 'block w-full h-auto': l'immagine (Itala 2064×1544, Menoncin 2464×2056) prende tutta la larghezza e la sua altezza supera lo spazio fra barra in alto e piede (Completato) -> scorrimento del pannello, immagine mai intera.
VERIFICATO: Playwright Edge come operatore su /measure/select, /measure/tasks/3, /measure/execute/8 a 1366×768, 1920×1080, 1280×800 SENZA immagine: nessuna barra. Il difetto nasce con l'immagine.

ANALISI (Opus)

  1. task_execute.html pannello visione (div x-data=visionExecute()): 'flex-1 overflow-auto' -> 'flex-1 min-h-0 overflow-hidden' (resto invariato: p-3 flex flex-col lg:flex-row gap-3).
  2. Colonna sinistra: aggiungere min-h-0 (flex-1 min-w-0 min-h-0 flex flex-col gap-2).
  3. Riquadro immagine: 'relative flex-1 min-h-0 border ... rounded-lg overflow-hidden bg-black/5'. img: 'absolute inset-0 w-full h-full object-contain' (niente h-auto). canvas overlay: 'absolute inset-0 w-full h-full object-contain pointer-events-none': drawOverlay (static/js/vision_execute.js:134) gia' imposta cv.width/height = naturalWidth/Height, quindi con object-contain sovrapposizione allineata all'immagine senza calcoli. Non cambiare drawOverlay salvo necessita' provata.
  4. Colonna esito (lg:w-80): 'min-h-0 overflow-y-auto' (scorre solo con molte quote, la pagina no). Sotto lg (colonna): il riquadro immagine resta flex-1, l'esito max-h-[40%].
  5. Messaggio «Nessuna immagine acquisita» e pulsanti invariati.
    NON TOCCARE: layout manuale (x-show=!isVisionTask), vision_execute.js salvo il punto 3, backend, scripts/.
    TEST: test frontend che controlla le classi nel template (pannello overflow-hidden, img object-contain, nessun h-auto sull'img del pannello visione); suite frontend verde. Prova Playwright di Opus: immagine 2464×2056 e 2064×1544 iniettata in imageSrc a 1366×768 e 1920×1080 -> nessuna barra, immagine intera (rect img dentro il pannello), overlay allineato.
Segnalato da Adriano 24/10/2026 su TMF da sorgente (daitarn): dopo «Acquisisci dalla camera» (e «Acquisisci immagine») nel task dxf_compare l'immagine non si vede intera in fit; le schermate dell'operatore non devono avere barre di scorrimento. CAUSA (letta nel codice, ramo lavoro/daitarn-tmf-dxfcal 552f96b): src/frontend/flask_app/templates/measure/task_execute.html:534-563 — pannello visione 'flex-1 overflow-auto', img 'block w-full h-auto': l'immagine (Itala 2064×1544, Menoncin 2464×2056) prende tutta la larghezza e la sua altezza supera lo spazio fra barra in alto e piede (Completato) -> scorrimento del pannello, immagine mai intera. VERIFICATO: Playwright Edge come operatore su /measure/select, /measure/tasks/3, /measure/execute/8 a 1366×768, 1920×1080, 1280×800 SENZA immagine: nessuna barra. Il difetto nasce con l'immagine. ANALISI (Opus) 1. task_execute.html pannello visione (div x-data=visionExecute()): 'flex-1 overflow-auto' -> 'flex-1 min-h-0 overflow-hidden' (resto invariato: p-3 flex flex-col lg:flex-row gap-3). 2. Colonna sinistra: aggiungere min-h-0 (flex-1 min-w-0 min-h-0 flex flex-col gap-2). 3. Riquadro immagine: 'relative flex-1 min-h-0 border ... rounded-lg overflow-hidden bg-black/5'. img: 'absolute inset-0 w-full h-full object-contain' (niente h-auto). canvas overlay: 'absolute inset-0 w-full h-full object-contain pointer-events-none': drawOverlay (static/js/vision_execute.js:134) gia' imposta cv.width/height = naturalWidth/Height, quindi con object-contain sovrapposizione allineata all'immagine senza calcoli. Non cambiare drawOverlay salvo necessita' provata. 4. Colonna esito (lg:w-80): 'min-h-0 overflow-y-auto' (scorre solo con molte quote, la pagina no). Sotto lg (colonna): il riquadro immagine resta flex-1, l'esito max-h-[40%]. 5. Messaggio «Nessuna immagine acquisita» e pulsanti invariati. NON TOCCARE: layout manuale (x-show=!isVisionTask), vision_execute.js salvo il punto 3, backend, scripts/. TEST: test frontend che controlla le classi nel template (pannello overflow-hidden, img object-contain, nessun h-auto sull'img del pannello visione); suite frontend verde. Prova Playwright di Opus: immagine 2464×2056 e 2064×1544 iniettata in imageSrc a 1366×768 e 1920×1080 -> nessuna barra, immagine intera (rect img dentro il pannello), overlay allineato.
Adriano added the bug label 2026-10-24 16:10:57 +00:00
Author
Owner

Soluzione

ESITO: fatto
RIF: gitea:Adriano/TieMeasureFlow#96, ramo lavoro/daitarn-tmf-dxfcal, commit b98d1f1
COSA: pannello visione overflow-hidden/min-h-0, img e canvas absolute inset-0 object-contain: immagine intera in fit, overlay allineato (canvas a risoluzione naturale), esito con scorrimento proprio solo se molte quote.
FILE: src/frontend/flask_app/templates/measure/task_execute.html; test src/frontend/flask_app/tests/test_vision_panel_fit.py (3)
PROVA: Playwright Edge operatore su /measure/execute/8, immagine 2464×2056 in imageSrc: prima img 167..1277 px su vista 768 (tagliata), dopo 167..674 su 768 e 167..986 su 1080, object-fit contain, nessuna barra. Suite frontend: 13 failed / 364 passed; 9 falliscono uguali su 552f96b pulito, 4 sono testi inglesi del worktree dxfcal (.mo/locale), falliscono anche col template vecchio.
NOTA: static/css/tailwind.css e' generato e gitignorato; ricompilato (npx tailwindcss@3.4.19) e copiato nel worktree dxfcal per max-h-[40%]; build.ps1 lo rigenera.

**Soluzione** ESITO: fatto RIF: gitea:Adriano/TieMeasureFlow#96, ramo lavoro/daitarn-tmf-dxfcal, commit b98d1f1 COSA: pannello visione overflow-hidden/min-h-0, img e canvas absolute inset-0 object-contain: immagine intera in fit, overlay allineato (canvas a risoluzione naturale), esito con scorrimento proprio solo se molte quote. FILE: src/frontend/flask_app/templates/measure/task_execute.html; test src/frontend/flask_app/tests/test_vision_panel_fit.py (3) PROVA: Playwright Edge operatore su /measure/execute/8, immagine 2464×2056 in imageSrc: prima img 167..1277 px su vista 768 (tagliata), dopo 167..674 su 768 e 167..986 su 1080, object-fit contain, nessuna barra. Suite frontend: 13 failed / 364 passed; 9 falliscono uguali su 552f96b pulito, 4 sono testi inglesi del worktree dxfcal (.mo/locale), falliscono anche col template vecchio. NOTA: static/css/tailwind.css e' generato e gitignorato; ricompilato (npx tailwindcss@3.4.19) e copiato nel worktree dxfcal per max-h-[40%]; build.ps1 lo rigenera.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Adriano/TieMeasureFlow#96