Skip to content

fix(web): Toast, Karten-Überlauf, Versionsnummer, Footer und Verbindungstest - #70

Merged
fgrfn merged 1 commit into
mainfrom
claude/new-session-hmaihv
Sep 8, 2026
Merged

fix(web): Toast, Karten-Überlauf, Versionsnummer, Footer und Verbindungstest#70
fgrfn merged 1 commit into
mainfrom
claude/new-session-hmaihv

Conversation

@fgrfn

@fgrfn fgrfn commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Behebt die Punkte aus dem Praxistest auf der laufenden Appliance.

Anzeige überlappt (Verwalten → Scanner)

Die lange Scanner-URI (airscan:escl:HP_ENVY_6400_series:http://…/eSCL/) hat die implizite Grid-Spur von .resource-grid auf ihre Min-Content-Breite aufgeblasen. Im Browser nachgemessen: die Karte ragte 140 px über ihren Container in die rechte Spalte.

  • .resource-grid auf minmax(0,1fr) festgenagelt
  • fehlende min-width:0-Guards auf den Flex-/Grid-Kindern ergänzt, die abgeschnittenen Text tragen (.resource-title>div, .list-row>div, .history-copy)

Nachmessung nach dem Fix: −21 px, die Karte liegt wieder innerhalb des Containers.

Test-Button zeigt kein Ergebnis

Ursache: das neue Stylesheet enthielt überhaupt keine .toast-Regel. Die Benachrichtigung wurde als unformatierter Text unterhalb des sichtbaren Bereichs gerendert (position: static, kein z-index) — jede Aktion sah folgenlos aus. Das erklärt auch die mehrfachen POST /targets/Unraid/test im Log.

  • Toast wieder als fixierte, abgesetzte Meldung mit Tonfarbe (Erfolg/Fehler/Info), über der Bottom-Nav
  • Der Toast verschwindet nach 4 s, deshalb bleibt das Ergebnis zusätzlich in der Karte stehen: farbiger Punkt + Meldung, bis erneut geprüft wird
  • Button sperrt während der Prüfung und zeigt „Prüfe …"
  • Fehler des Ziel-Formulars erscheinen zusätzlich inline unter den Buttons

Zwei „Testen"-Buttons auf Ziele

Die Karten-Aktion heißt jetzt „Verbindung prüfen" (checkConnection), im Formular bleibt „Testen & speichern" / „Ohne Test speichern". Damit steht „Testen" nur noch an einer Stelle. Gleiche Benennung bei den Scannern.

Versionsnummer 0.0.0

Im Image wird app/ nach /app kopiert, get_version() suchte deshalb /VERSION — die Datei existiert dort nie (Could not read VERSION file (/VERSION) im Log).

  • COPY VERSION ./VERSION im Backend-Stage
  • get_version() prüft SCAN2TARGET_VERSION, dann /app/VERSION, dann die Repo-Wurzel

Einstellungen unvollständig / Footer fehlt

  • Schalter „Daten automatisch aktualisieren" ergänzt (die Einstellung existierte, war aber nicht bedienbar)
  • Anmeldungs-Karte erklärt jetzt den Zustand, statt leer zu bleiben, wenn kein Kontoformular gezeigt wird
  • Home-Assistant-Karte nennt Endpunkt und Methode: POST /api/v1/homeassistant/scan — ein Aufruf im Browser (GET) antwortet mit 405
  • Neuer Footer unter jeder Ansicht: Version, Quellcode- und Doku-Link, Live-/Polling-Status

Verifikation

  • npm run build ✓, npm run check 0/0, npm run test:e2e 1/1
  • pytest tests/ 25/25
  • Browser-Messungen gegen gestubbte Daten mit genau deinem Scanner/Ziel: Überlauf, Toast-Position, Button-Beschriftungen, Inline-Ergebnis und ein Klick = ein API-Aufruf

Offen

GET /api/v1/homeassistant/scan bleibt bewusst 405. Eine GET-Variante wäre bequem für Taster, ließe sich aber von jeder Webseite per '<img src=…>' auslösen — der Endpunkt ist standardmäßig ungeschützt. Sag Bescheid, wenn du sie trotzdem willst (dann am besten nur mit gesetztem SCAN2TARGET_HA_API_KEY).

🤖 Generated with Claude Code

https://claude.ai/code/session_01PnunQ6KenoLUPCZRxjvhDd


Generated by Claude Code

Field report from the running appliance: cards overlapped, the test
button gave no feedback, the version showed 0.0.0 and the footer was
missing.

- toast: the redesigned stylesheet had no .toast rule, so every
  notification rendered as unstyled text below the fold and no action
  ever appeared to do anything. Restore it as a fixed, elevated,
  tone-coloured toast above the bottom nav.
- resource cards: a long scanner URI blew up the implicit grid track and
  pushed the card ~140px over its container into the neighbouring
  column. Pin the track to minmax(0,1fr) and add the missing min-width:0
  guards on the flex/grid children that carry truncated text.
- connection test: the card action is now "Verbindung prüfen" (so
  "Testen" is not on screen twice), it locks while running and leaves
  the result in the card instead of only in a toast. Same for scanners.
  Target form errors are shown inline as well.
- version: in the image app/ is copied to /app, so the lookup landed on
  /VERSION and always failed. Copy VERSION into the image and resolve it
  next to the app, at the repo root, or from SCAN2TARGET_VERSION.
- settings: add the auto-refresh switch, explain the sign-in card when
  no account form is shown, and name the Home Assistant endpoint and its
  method (a browser GET answers 405).
- footer: version, source and documentation links plus live/polling
  state under every view.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PnunQ6KenoLUPCZRxjvhDd
@fgrfn
fgrfn marked this pull request as ready for review September 8, 2026 01:52
@fgrfn
fgrfn merged commit 81178b6 into main Sep 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants