feat(dateien): Bilder aus der Zwischenablage einfügen (Strg+V)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- C#
- Star
- 1
- Fork
- 3
- Merge trung bình
- 4 giờ 34 phút
- Pull request đã merge (30 ngày)
- 182
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CodeForFire/lagebuch
-
bug ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
CodeForFire/lagebuch#714 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
CodeForFire/lagebuch#713 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
CodeForFire/lagebuch#405 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
CodeForFire/lagebuch#349 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
CodeForFire/lagebuch#348 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của CodeForFire/lagebuch
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
KnifeLemon/Filee#363 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[CI] .trgen-ignore required for several grammars.Có thể đã có người làm @kaby76 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
antlr/grammars-v4#5073 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
/api/oauth/introspect emits clientId and tokenType instead of RFC 7662's client_id and token_typeĐang mởbug P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
nightscout/nocturne#2317 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG]: Position intent set on a simple order is dropped when it becomes a bracket, OCO or OTO orderCó thể đã có người làm @RaphaelFakhri đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
alpacahq/alpaca-trade-api-csharp#903 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
joinrpg/joinrpg-net#5752 ·
Maintainer thường phản hồi trong vòng 1 ngày