diff --git a/web/index.html b/web/index.html
index 3184a4f..393dd16 100644
--- a/web/index.html
+++ b/web/index.html
@@ -46,6 +46,7 @@
diff --git a/web/js/app.js b/web/js/app.js
index ce85b46..25a5817 100644
--- a/web/js/app.js
+++ b/web/js/app.js
@@ -88,6 +88,7 @@ document.getElementById("entry-form").addEventListener("submit", async (e) => {
const msg = document.getElementById("entry-msg");
if (res.ok) {
msg.textContent = "";
+ document.getElementById("paste-msg").textContent = "";
e.target.reset();
feed.reset();
} else {
@@ -95,6 +96,34 @@ document.getElementById("entry-form").addEventListener("submit", async (e) => {
}
});
+// --- Bild aus der Zwischenablage einfügen ---
+// Strg+V im Textfeld: liegt ein Bild in der Zwischenablage, übernehmen wir es in
+// den File-Input (über DataTransfer, weil sich .files nicht direkt setzen lässt).
+// Liegt kein Bild vor (Text o. Ä.), tun wir nichts und lassen den normalen Paste
+// durchlaufen -> preventDefault nur, wenn wir wirklich ein Bild gegriffen haben.
+document.getElementById("entry-form").addEventListener("paste", (e) => {
+ const item = [...(e.clipboardData?.items ?? [])].find(
+ (it) => it.kind === "file" && it.type.startsWith("image/")
+ );
+ if (!item) return;
+
+ const original = item.getAsFile();
+ if (!original) return;
+ e.preventDefault();
+
+ // Browser benennt Clipboard-Bilder uneinheitlich ("grafik.png" o. Ä.) -> neu
+ // verpacken mit sprechendem Namen. Endung aus dem MIME-Typ, sonst png.
+ const ext = (original.type.split("/")[1] || "png").toLowerCase();
+ const file = new File([original], `zwischenablage.${ext}`, { type: original.type });
+
+ const input = document.querySelector("#entry-form input[name='file']");
+ const dt = new DataTransfer();
+ dt.items.add(file);
+ input.files = dt.files;
+
+ document.getElementById("paste-msg").textContent = "Bild aus Zwischenablage übernommen.";
+});
+
// --- Statuszeile unter dem Titel ---
// Tage ohne Datenverlust (fester Startpunkt, Kontinuität seit der alten
// Version) plus aktuelle Kennzahlen aus /stats.