From 352b086b19a0d58ef8bc82ce9dc36eb600b98232 Mon Sep 17 00:00:00 2001 From: Michael Hoennig Date: Tue, 21 Jul 2026 10:46:39 +0200 Subject: [PATCH] =?UTF-8?q?frontend:=20Clipboard-Copy=20f=C3=BCr=20den=20N?= =?UTF-8?q?otationstext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Button "kopieren" im Editor-Kopf kopiert den Textarea-Inhalt via navigator.clipboard.writeText (Fallback: Auswahl + execCommand) und quittiert kurz mit "kopiert ✓". Co-Authored-By: Claude Opus 4.8 --- frontend/index.html | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/frontend/index.html b/frontend/index.html index 2930d5a..f39ab34 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -154,6 +154,15 @@ } .winbtn:hover{border-color:var(--or);color:var(--or)} .winbtn.active{background:var(--or);color:#fff;border-color:var(--or)} + .copybtn{ + font-family:'IBM Plex Sans',sans-serif; + font-size:.72rem;text-transform:none;letter-spacing:0; + color:var(--muted);background:var(--card); + border:1px solid rgba(36,52,71,.2);border-radius:6px; + padding:2px 9px;cursor:pointer; + display:inline-flex;align-items:center;gap:5px; + } + .copybtn:hover,.copybtn.done{border-color:var(--or);color:var(--or)} textarea{ display:block;width:100%;min-height:380px; border:0;outline:none;resize:vertical; @@ -365,6 +374,7 @@
Struktur (Text) +
@@ -657,6 +667,22 @@ gutter.addEventListener('pointercancel', endDrag); const showc = document.getElementById('showc'); showc.addEventListener('change', render); +/* ---------- Text in die Zwischenablage kopieren ---------- */ +const copyBtn = document.getElementById('copy'); +copyBtn.addEventListener('click', async () => { + try{ + await navigator.clipboard.writeText(src.value); + }catch(_){ + src.select(); + document.execCommand('copy'); + src.setSelectionRange(0, 0); + src.blur(); + } + copyBtn.textContent = 'kopiert ✓'; + copyBtn.classList.add('done'); + setTimeout(() => { copyBtn.textContent = 'kopieren'; copyBtn.classList.remove('done'); }, 1500); +}); + applySplit(); /* Startzustand: normal, markiert die normal-Buttons aktiv */ src.value = INITIAL; render();