Seitenpanel-Notiz: Datei per Drag & Drop einfügen funktioniert nicht, Bild aus Workspace-Notiz lädt nicht #322

Closed
opened 2026-11-04 21:34:45 +00:00 by alf · 2 comments
Owner

Problem: Eine Datei (z. B. ein Bild) aus dem Finder in die Notiz im rechten Seitenpanel (Bearbeiten-Modus) ziehen tat nichts: kein Drop-Cursor, kein Wikilink bzw. keine Vorschau an der Cursorposition. Danach lud das per „Datei einfügen“ eingefügte Bild einer Workspace-Notiz nicht („Bild konnte nicht geladen werden“).

Warum: Dateien per Drag in eine Notiz zu legen ist der übliche Weg; im Seitenpanel war er unbrauchbar.

**Problem:** Eine Datei (z. B. ein Bild) aus dem Finder in die Notiz im rechten Seitenpanel (Bearbeiten-Modus) ziehen tat nichts: kein Drop-Cursor, kein Wikilink bzw. keine Vorschau an der Cursorposition. Danach lud das per „Datei einfügen“ eingefügte Bild einer Workspace-Notiz nicht („Bild konnte nicht geladen werden“). **Warum:** Dateien per Drag in eine Notiz zu legen ist der übliche Weg; im Seitenpanel war er unbrauchbar.
Author
Owner

PR #323 gemergt: fix(vault-editor): Datei-Drag ins Seitenpanel, Anhänge von Workspace-Notizen laden (#322)
http://docker:3000/iris/Iris/pulls/323

Commits:

  • fix(vault-editor): Datei-Drag ins Seitenpanel, Anhänge von Workspace-Notizen laden (#322)

Stand

Befund: Eine Datei aus dem Finder in die Notiz im Seitenpanel (Bearbeiten-Modus) zu ziehen, löste nichts aus; nicht einmal der Drop-Cursor erschien. Ein per „Datei einfügen“ eingefügtes Bild einer Workspace-Notiz lud nicht („Bild konnte nicht geladen werden“).

Ursachen und Änderungen:

  • Seitenpanel (RemoteClientView): Notiz-, Browser- und Plugin-Reiter liegen im ZStack übereinander. Die verdeckten Reiter waren nur per opacity(0)/allowsHitTesting(false) ausgeblendet; das hält AppKit-Drags nicht fern. Jetzt werden verdeckte Reiter per .offset aus dem Bild geschoben (bleiben eingehängt, Zustand bleibt).
  • Textblock (VaultNoteSourceEditor): Die Anmeldung in viewDidMoveToWindow (seit dem Fix vom 23.09.) ersetzte die Standard-Anmeldung und enthielt .fileURL nicht mehr. Jetzt wieder dabei.
  • Mac-Server (resolveVaultWikilinkPath): Wikilinks von Anhängen sind nur Dateinamen; bei Workspace-Notizen liegen sie in <noteDir>/_attachments/. Der Server suchte dort nicht. Jetzt zusätzlich.

Geprüft: Datei-Drag aus dem Finder auf eine Textzeile im Seitenpanel funktioniert nach dem Neubau (vom Nutzer bestätigt). Log-Mitschnitt zeigte vorher keinen einzigen draggingEntered am Textblock.

Nicht geprüft:

  • Bild-Anzeige nach dem Server-Fix (Workspace-Notiz, _attachments) und PDF-Drop nicht erneut von Hand ausprobiert.
  • Browser-/Plugin-Reiter nach dem Offset (Zustand, Rendern beim Zurückwechseln) nicht gezielt geprüft.
  • Zwischenzeitlich getestete Zusatzschichten (Überschreiben von updateDragTypeRegistration, SwiftUI-.onDrop als Auffangnetz) sind wieder entfernt; der Stand ohne sie ist nicht eigens getestet.
  • Ursache „verdeckte Reiter schlucken den Drag“ ist aus dem Code abgeleitet, nicht per Hit-Test-Messung belegt; der Effekt (Drag geht danach) ist bestätigt.

Offen / Grenzen: Linux-Server (vault_routes.py) kennt noteDir bei GET /vault/file nicht; dort laden Anhänge von Workspace-Notizen weiter nicht. Gleiches Muster (Opacity statt Entfernen) steckt in RemoteVaultNoteDetailView (Vorschau/Editor).

PR #323 gemergt: fix(vault-editor): Datei-Drag ins Seitenpanel, Anhänge von Workspace-Notizen laden (#322) http://docker:3000/iris/Iris/pulls/323 Commits: - fix(vault-editor): Datei-Drag ins Seitenpanel, Anhänge von Workspace-Notizen laden (#322) --- **Stand** **Befund:** Eine Datei aus dem Finder in die Notiz im Seitenpanel (Bearbeiten-Modus) zu ziehen, löste nichts aus; nicht einmal der Drop-Cursor erschien. Ein per „Datei einfügen“ eingefügtes Bild einer Workspace-Notiz lud nicht („Bild konnte nicht geladen werden“). **Ursachen und Änderungen:** - Seitenpanel (`RemoteClientView`): Notiz-, Browser- und Plugin-Reiter liegen im `ZStack` übereinander. Die verdeckten Reiter waren nur per `opacity(0)`/`allowsHitTesting(false)` ausgeblendet; das hält AppKit-Drags nicht fern. Jetzt werden verdeckte Reiter per `.offset` aus dem Bild geschoben (bleiben eingehängt, Zustand bleibt). - Textblock (`VaultNoteSourceEditor`): Die Anmeldung in `viewDidMoveToWindow` (seit dem Fix vom 23.09.) ersetzte die Standard-Anmeldung und enthielt `.fileURL` nicht mehr. Jetzt wieder dabei. - Mac-Server (`resolveVaultWikilinkPath`): Wikilinks von Anhängen sind nur Dateinamen; bei Workspace-Notizen liegen sie in `<noteDir>/_attachments/`. Der Server suchte dort nicht. Jetzt zusätzlich. **Geprüft:** Datei-Drag aus dem Finder auf eine Textzeile im Seitenpanel funktioniert nach dem Neubau (vom Nutzer bestätigt). Log-Mitschnitt zeigte vorher keinen einzigen `draggingEntered` am Textblock. **Nicht geprüft:** - Bild-Anzeige nach dem Server-Fix (Workspace-Notiz, `_attachments`) und PDF-Drop nicht erneut von Hand ausprobiert. - Browser-/Plugin-Reiter nach dem Offset (Zustand, Rendern beim Zurückwechseln) nicht gezielt geprüft. - Zwischenzeitlich getestete Zusatzschichten (Überschreiben von `updateDragTypeRegistration`, SwiftUI-`.onDrop` als Auffangnetz) sind wieder entfernt; der Stand ohne sie ist nicht eigens getestet. - Ursache „verdeckte Reiter schlucken den Drag“ ist aus dem Code abgeleitet, nicht per Hit-Test-Messung belegt; der Effekt (Drag geht danach) ist bestätigt. **Offen / Grenzen:** Linux-Server (`vault_routes.py`) kennt `noteDir` bei `GET /vault/file` nicht; dort laden Anhänge von Workspace-Notizen weiter nicht. Gleiches Muster (Opacity statt Entfernen) steckt in `RemoteVaultNoteDetailView` (Vorschau/Editor).
alf 2026-11-04 21:36:10 +00:00
Author
Owner

PR #140 gemergt: fix(vault): /vault/file nimmt noteDir und sucht in _attachments (iris/Iris#322)
http://docker:3000/iris/iris-linux-server/pulls/140

Commits:

  • fix(vault): /vault/file nimmt noteDir und sucht in _attachments (iris/Iris#322)

Stand Linux-Server (Nachzug zu #323)

Befund: Der Linux-Server kannte den Parameter noteDir bei GET /vault/file nicht. Anhänge einer Workspace-Notiz (Wikilink = nur Dateiname, Datei in <Notizordner>/_attachments/) wurden dort nie gefunden; die vault-weite Suche überspringt _attachments und liegt außerhalb des Workspaces.

Geändert (iris-server/app/vault_routes.py): GET und POST /vault/file nehmen noteDir an. resolve_vault_wikilink_path löst nach vault-relativ zuerst <Notizordner>/<Pfad> und dann <Notizordner>/_attachments/<Pfad> auf; der Notizordner kommt aus noteDir oder, wie bisher, aus notePath. Reihenfolge wie im Mac-Server.

Geprüft: Neuer Unit-Test tests/test_vault_wikilink_resolver.py (2 Fälle, grün): Anhang im _attachments außerhalb des Vaults über noteDir und über notePath, relativer Pfad ohne _attachments.

Nicht geprüft: Kein Deploy und kein Test gegen einen laufenden Linux-Server mit echter Workspace-Notiz; die vorhandenen Server-Tests (brauchen gemounteten Vault) nicht gelaufen. Der Aufrufer htmlserver_routes.py ist unverändert (neuer Parameter hat Default).

Offen: Deploy per rsync auf iris-server und Test im Client.

PR #140 gemergt: fix(vault): /vault/file nimmt noteDir und sucht in _attachments (iris/Iris#322) http://docker:3000/iris/iris-linux-server/pulls/140 Commits: - fix(vault): /vault/file nimmt noteDir und sucht in _attachments (iris/Iris#322) --- **Stand Linux-Server (Nachzug zu #323)** **Befund:** Der Linux-Server kannte den Parameter `noteDir` bei `GET /vault/file` nicht. Anhänge einer Workspace-Notiz (Wikilink = nur Dateiname, Datei in `<Notizordner>/_attachments/`) wurden dort nie gefunden; die vault-weite Suche überspringt `_attachments` und liegt außerhalb des Workspaces. **Geändert (`iris-server/app/vault_routes.py`):** `GET` und `POST /vault/file` nehmen `noteDir` an. `resolve_vault_wikilink_path` löst nach vault-relativ zuerst `<Notizordner>/<Pfad>` und dann `<Notizordner>/_attachments/<Pfad>` auf; der Notizordner kommt aus `noteDir` oder, wie bisher, aus `notePath`. Reihenfolge wie im Mac-Server. **Geprüft:** Neuer Unit-Test `tests/test_vault_wikilink_resolver.py` (2 Fälle, grün): Anhang im `_attachments` außerhalb des Vaults über `noteDir` und über `notePath`, relativer Pfad ohne `_attachments`. **Nicht geprüft:** Kein Deploy und kein Test gegen einen laufenden Linux-Server mit echter Workspace-Notiz; die vorhandenen Server-Tests (brauchen gemounteten Vault) nicht gelaufen. Der Aufrufer `htmlserver_routes.py` ist unverändert (neuer Parameter hat Default). **Offen:** Deploy per rsync auf iris-server und Test im Client.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
iris/Iris#322
No description provided.