feat(dateien): Bilder aus der Zwischenablage einfügen (Strg+V)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
Rechercherichtung
Start with src/LageBuch.App.Shared/Views/FilesView.axaml.cs to understand the existing file-drop handling, then read src/LageBuch.AppLogic/ViewModels/FilesViewModel.cs and src/LageBuch.Domain/Files/IncidentFile.cs for upload paths and file constraints. Implementing clipboard paste and byte-based browser drops also needs desktop clipboard and drag-and-drop investigation; done means both routes accept sanitized, valid images within the existing size limit, with EXIF handling considered alongside #384.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Rückmeldung aus der Praxis
Copy Paste in Dateien von Bildern einer Webseite oder aus der Zwischenablage
Heute
Die Zwischenablage wird nirgends angefasst. grep -riE "clipboard|paste|ctrl\+v" src/ liefert genau einen Treffer, und der ist ein unbeteiligter Kommentar in
Behaviors/IntegerOnly.cs. Kein TopLevel.Clipboard, kein
KeyBinding Gesture="Ctrl+V".
Drag & Drop gibt es — aber nur für Dateien vom Datenträger:
// src/LageBuch.App.Shared/Views/FilesView.axaml.cs
DataContext is FilesViewModel { IsReadOnly: false, IsUploading: false }
&& e.DataTransfer.Contains(DataFormat.File)
und aufgelöst wird über f.TryGetLocalPath(). Zieht man ein Bild direkt aus
dem Browser, liefert der Browser Bytes oder eine URL, keinen lokalen Pfad — der
Drop wird kommentarlos ignoriert. Das ist genau der Fall aus der
Rückmeldung.
Der eigentliche Hinderungsgrund
Der Aufnahmeweg ist durchgehend pfadbasiert:
// src/LageBuch.AppLogic/ViewModels/FilesViewModel.cs:187
public async Task AddFilesAsync(IReadOnlyList<string> paths) // -> File.ReadAllBytesAsync
Es gibt keinen Einstieg, der ein byte[] entgegennimmt. Ein Bild aus der
Zwischenablage hat aber nie einen Pfad.
Vorschlag
- Ein
AddBytesAsync(name, contentType, byte[])nebenAddFilesAsync, auf das
beide neuen Wege einzahlen. - Strg+V im Reiter DATEIEN, und zusätzlich Bild-Bytes beim Drop akzeptieren,
nicht nurDataFormat.File. - Einen Namen erzeugen, da keiner mitkommt — etwa
Zwischenablage-20260920-1432.png. Der muss wie jeder andere durch
IncidentFile.SanitizeFileName.
Die vorhandenen Schranken greifen unverändert: erlaubte Typen sind
jpg/jpeg/png/gif/webp/pdf, die Obergrenze 25 MB
(src/LageBuch.Domain/Files/IncidentFile.cs) — beides passt für
Zwischenablage-Bilder.
Zu bedenken
- Ein Bild von einer Webseite bringt EXIF mit; #384 will das ohnehin
abstreifen. Ein neuer Aufnahmeweg sollte dort gleich mit angeschlossen
werden. - Android hat eine eigene Zwischenablage-Geschichte; das Issue ist erst einmal
für den Desktop gedacht.
Verwandt: #347, #384, #383.
- Vorherrschende Sprache
- C#
- Sterne
- 1
- Forks
- 3
- Ø Merge
- 4 Std. 15 Min.
- Gemergte PRs (30 T.)
- 181
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus CodeForFire/lagebuch
-
Stammdaten: in the Checkliste editor the PFLICHT header is not aligned with its columnEvtl. vergeben @Saad-elnagar hat das vor 3 Tagen übernommen. Offenbug ux
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
CodeForFire/lagebuch#714 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Stammdaten: on a phone the Fahrzeuge editor squeezes Wache and Funkrufname to nothingEvtl. vergeben @Saad-elnagar hat das vor 3 Tagen übernommen. Offenbug ux
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
CodeForFire/lagebuch#713 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
CodeForFire/lagebuch#405 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
CodeForFire/lagebuch#349 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
CodeForFire/lagebuch#348 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in CodeForFire/lagebuch
Ähnliche Issues
-
area-multitenancy area-security p1-recommended priority-high technical-debt
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
help wanted needs-unity ready for a contributor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
eyalgolan/statecraft-israel#1542 ·
Maintainer antworten meist innerhalb von 1 Tag
-
kind/enhancement Provider Upgrade pulumi/pulumi-azure R1 Task
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
pulumi/pulumi-azure#3669 ·
-
type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag