fix(gui+api): cleanup before merge

- Rename "TrovaUtensile" tab → "Cerca modello".
- Remove the "Precisione (ultime 5 detection)" stats panel and the
  "Dettagli" JSON dump from the grasp tab; keep hidden stubs so the
  existing app.js continuous-loop code doesn't null-deref.
- Add work_plane_routes to api/__init__.py imports + __all__ (consistency
  with the other routers).
- Trim the misleading "drag = pan · wheel = zoom · doppio click = reset"
  hint from the Calibrazione Piano RGB label — pan/zoom isn't wired.
- Disable wpClearBtn initially so it doesn't flash clickable before
  fetchSaved() resolves.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal PastroandClaude Opus 4.7 committed 2026-05-11 17:23:29 +02:00
1 parent ae84739c64
commit 57bd252375
2 files changed
+13 -15

No files matched your search

+2
View File
@@ -11,6 +11,7 @@ from . import (
perception_routes, perception_routes,
posture_routes, posture_routes,
robot_routes, robot_routes,
work_plane_routes,
wrist_routes, wrist_routes,
) )
@@ -23,5 +24,6 @@ __all__ = [
"perception_routes", "perception_routes",
"posture_routes", "posture_routes",
"robot_routes", "robot_routes",
"work_plane_routes",
"wrist_routes", "wrist_routes",
] ]
+11 -15
View File
@@ -14,7 +14,7 @@
<button class="tab" data-tab="agent">Assistente AI</button> <button class="tab" data-tab="agent">Assistente AI</button>
<button class="tab" data-tab="ai-settings">Impostazioni AI</button> <button class="tab" data-tab="ai-settings">Impostazioni AI</button>
<button class="tab" data-tab="workplane">Calibrazione Piano</button> <button class="tab" data-tab="workplane">Calibrazione Piano</button>
<button class="tab" data-tab="grasp">TrovaUtensile</button> <button class="tab" data-tab="grasp">Cerca modello</button>
<button class="tab" data-tab="view3d">Vista 3D</button> <button class="tab" data-tab="view3d">Vista 3D</button>
<button class="tab" data-tab="ee">Movimento EE</button> <button class="tab" data-tab="ee">Movimento EE</button>
</nav> </nav>
@@ -187,7 +187,7 @@
<canvas id="wpOverlay" style="position:absolute;left:0;top:0;pointer-events:none"></canvas> <canvas id="wpOverlay" style="position:absolute;left:0;top:0;pointer-events:none"></canvas>
</div> </div>
</div> </div>
<div class="marker-info">RGB live · shift+drag = ROI · drag = pan · wheel = zoom · doppio click = reset</div> <div class="marker-info">RGB live · shift+drag = ROI</div>
<h3 style="margin-top:14px">Vista 3D (frame camera)</h3> <h3 style="margin-top:14px">Vista 3D (frame camera)</h3>
<div class="canvas-wrap" style="width:min(100%,720px)"> <div class="canvas-wrap" style="width:min(100%,720px)">
<canvas id="wp3dCanvas" width="720" height="360" style="display:block;background:#0a0d11;border:1px solid var(--border);border-radius:4px"></canvas> <canvas id="wp3dCanvas" width="720" height="360" style="display:block;background:#0a0d11;border:1px solid var(--border);border-radius:4px"></canvas>
@@ -209,7 +209,7 @@
<div class="actions"> <div class="actions">
<button id="wpFitBtn" class="primary" disabled>Calcola piano (preview)</button> <button id="wpFitBtn" class="primary" disabled>Calcola piano (preview)</button>
<button id="wpSaveBtn" disabled>Salva piano</button> <button id="wpSaveBtn" disabled>Salva piano</button>
<button id="wpClearBtn" class="danger">Rimuovi piano salvato</button> <button id="wpClearBtn" class="danger" disabled>Rimuovi piano salvato</button>
</div> </div>
</div> </div>
@@ -265,21 +265,17 @@
</div> </div>
</div> </div>
<h3>Precisione (ultime <span id="statsWindow">5</span> detection)</h3> <!-- Hidden DOM hooks consumed by app.js (Precisione + Dettagli UI removed). -->
<table class="stats" id="statsTable"> <div style="display:none">
<thead> <span id="statsWindow">5</span>
<tr><th>asse</th><th>media [m]</th><th>σ [mm]</th><th>range [mm]</th><th>min</th><th>max</th></tr> <table id="statsTable"><tbody>
</thead>
<tbody>
<tr><td>x</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td></tr> <tr><td>x</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td></tr>
<tr><td>y</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td></tr> <tr><td>y</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td></tr>
<tr><td>z</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td></tr> <tr><td>z</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td></tr>
</tbody> </tbody></table>
</table> <div id="statsMeta"></div>
<div id="statsMeta" class="marker-info">loop: inattivo</div> <pre id="graspOut"></pre>
</div>
<h3>Dettagli</h3>
<pre id="graspOut" class="log">(nessuna detection)</pre>
</div> </div>
</div> </div>
</section> </section>