Vault-Import: Label-Auswahl fehlt bei Teich ohne Labels #121

Closed
opened 2026-07-15 10:53:59 +02:00 by fable-5 · 1 comment
Collaborator

Bug (gefunden beim Vault-Import-Test auf Prod)

Die Label-Multiselect-Sektion des Vault-Import-Dialogs (#118) ist mit {flat.length > 0 && …} gegated (apps/web/src/import/VaultImportSection.tsx). Hat der Teich noch keine Labels — der Normalfall vor einem Erst-Import — wird die Sektion gar nicht gerendert: Es kann kein zusätzliches Label für alle importierten Seiten gewählt werden. Der e2e-Test legte vorab per API ein Label an und hat die Lücke deshalb nie bemerkt.

Fix:

  • Sektion immer rendern; bei leerem Teich Hinweistext.
  • Inline-Anlegen eines neuen Labels direkt im Dialog (Textfeld + Knopf, Muster aus dem LabelPicker); das neue Label wird automatisch angehakt. Permission-sicher: POST /ponds/:id/labels verlangt pond_admin — dieselbe Rolle, die den Dialog sieht.
  • i18n vault.labelsEmpty / vault.labelCreate / vault.labelName (de+en).
  • e2e: Label im Dialog statt vorab per API anlegen (deckt den Leerer-Teich-Pfad ab).
**Bug** (gefunden beim Vault-Import-Test auf Prod) Die Label-Multiselect-Sektion des Vault-Import-Dialogs (#118) ist mit `{flat.length > 0 && …}` gegated (`apps/web/src/import/VaultImportSection.tsx`). Hat der Teich noch keine Labels — der Normalfall vor einem Erst-Import — wird die Sektion **gar nicht gerendert**: Es kann kein zusätzliches Label für alle importierten Seiten gewählt werden. Der e2e-Test legte vorab per API ein Label an und hat die Lücke deshalb nie bemerkt. **Fix:** - Sektion immer rendern; bei leerem Teich Hinweistext. - **Inline-Anlegen** eines neuen Labels direkt im Dialog (Textfeld + Knopf, Muster aus dem LabelPicker); das neue Label wird automatisch angehakt. Permission-sicher: `POST /ponds/:id/labels` verlangt `pond_admin` — dieselbe Rolle, die den Dialog sieht. - i18n `vault.labelsEmpty` / `vault.labelCreate` / `vault.labelName` (de+en). - e2e: Label im Dialog statt vorab per API anlegen (deckt den Leerer-Teich-Pfad ab).
fable-5 added this to the M14 — UI-Überarbeitung nach Vault-Import-Test milestone 2026-07-15 10:53:59 +02:00
fable-5 added the
frontend
label 2026-07-15 10:53:59 +02:00
Author
Collaborator

Erledigt in b8546eb.

  • Label-Fieldset wird immer gerendert; bei leerem Teich mit Hinweistext (vault.labelsEmpty).
  • Inline-Anlegen direkt im Dialog: Textfeld + „Label anlegen" (POST liefert die Id zurück → Label wird sofort angehakt, labelsKey invalidiert). Enter im Feld legt an statt zu submitten. Permission-sicher: POST /ponds/:id/labels verlangt dieselbe pond_admin-Rolle wie der Dialog.
  • i18n de+en (vault.labelsEmpty/labelName/labelCreate).
  • e2e: Der Pack legt das Label jetzt im Dialog statt vorab per API an — genau der Leerer-Teich-Pfad, der vorher durchgerutscht ist; die vorbelegte Checkbox wird asserted.

Live verifiziert (Teich ohne Labels → Label im Dialog angelegt → Import → alle Seiten tragen das Label). CI grün auf 1781f12.

Erledigt in `b8546eb`. - Label-Fieldset wird immer gerendert; bei leerem Teich mit Hinweistext (`vault.labelsEmpty`). - Inline-Anlegen direkt im Dialog: Textfeld + „Label anlegen" (POST liefert die Id zurück → Label wird sofort angehakt, `labelsKey` invalidiert). Enter im Feld legt an statt zu submitten. Permission-sicher: `POST /ponds/:id/labels` verlangt dieselbe `pond_admin`-Rolle wie der Dialog. - i18n de+en (`vault.labelsEmpty/labelName/labelCreate`). - e2e: Der Pack legt das Label jetzt **im Dialog** statt vorab per API an — genau der Leerer-Teich-Pfad, der vorher durchgerutscht ist; die vorbelegte Checkbox wird asserted. Live verifiziert (Teich ohne Labels → Label im Dialog angelegt → Import → alle Seiten tragen das Label). CI grün auf `1781f12`.
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#121
No description provided.