Pannello visione operatore: zoom, overlay e Salva passano a <tmf-viewer>

Refs #122

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 21:58:18 +01:00
parent 43ef22079d
commit 815d49d699
7 changed files with 84 additions and 348 deletions
@@ -40,20 +40,28 @@ def test_camera_bar_has_grab_and_record_only():
assert "onPick(" not in cam
def test_save_button_in_zoom_bar_between_adatta_and_percent():
# #119: «Salva» dopo «Adatta», prima della percentuale; script save_image.js incluso
def test_save_button_is_tmf_viewer_with_texts():
# #119 #122: «Salva» e' del componente <tmf-viewer> (barra: Riduci, Ingrandisci, Adatta, Salva, %); il template gli passa nome e testi
panel = _panel()
assert panel.index("{{ _('Adatta') }}") < panel.index("{{ _('Salva') }}") < panel.index('x-text="zPct()"')
assert '@click="saveImage()"' in panel and "{{ _('Salva immagine') }}" in panel
assert "js/save_image.js" in SRC
assert "<tmf-viewer" in panel and ':src="shownImage"' in panel and ':save-name="saveName"' in panel
for t in ("Adatta", "Salva", "Ingrandisci", "Riduci", "Salva immagine"):
assert "{{ _('%s') }}" % t in panel, t
assert "saveImage()" not in panel and "zPct()" not in panel
assert "taskName:" in SRC
def test_overlay_is_svg_not_canvas():
# #121: svg dentro il wrapper dello zoom, nessun canvas nel pannello
def test_viewer_scripts_order():
# #122: image_viewer.js dopo vision_overlay.js e save_image.js (e prima di vision_execute.js non serve: e' un Custom Element)
assert SRC.index("js/vision_overlay.js") < SRC.index("js/image_viewer.js")
assert SRC.index("js/save_image.js") < SRC.index("js/image_viewer.js")
def test_overlay_and_labels_passed_to_viewer():
# #121 #122: overlay e etichette arrivano al viewer con x-effect (proprieta'), niente canvas
panel = _panel()
assert '<svg x-ref="overlay"' in panel and "<canvas" not in panel
assert panel.index('zSize()') < panel.index('<svg x-ref="overlay"') < panel.index('x-for="l in overlayLabels"')
assert "<canvas" not in panel
assert "$el.overlay = (result && result.overlay) || []" in panel and "$el.labels = viewerLabels" in panel
assert "overlayLabels" not in panel
def test_value_cell_shows_nan_for_null():