feat(dateien): Bilder aus der Zwischenablage einfügen (Strg+V)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- C#
- スター
- 1
- フォーク
- 3
- 平均マージ
- 4時間 34分
- マージ済み PR(30日)
- 182
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CodeForFire/lagebuch のほかの issue
-
bug ux
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
CodeForFire/lagebuch#714 ·
メンテナーはふだん 1 日以内に返信
-
bug ux
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
CodeForFire/lagebuch#713 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
CodeForFire/lagebuch#405 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
CodeForFire/lagebuch#349 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
CodeForFire/lagebuch#348 ·
メンテナーはふだん 1 日以内に返信
CodeForFire/lagebuch の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
KnifeLemon/Filee#363 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
area-Native untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
dotnet/machinelearning#7837 ·
メンテナーはふだん 2 日以内に返信
-
[CI] .trgen-ignore required for several grammars.対応中かも @kaby76 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
antlr/grammars-v4#5073 ·
メンテナーはふだん 1 日以内に返信
-
[Enhancement]: Add a search box to the Time Zone dropdown対応中かも @idumlupinar が今日担当しました。 オープンStatus: New
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
dnnsoftware/Dnn.Platform#7579 ·
メンテナーはふだん 2 日以内に返信