()
| 527 | } |
| 528 | |
| 529 | function copyFromModal() { |
| 530 | const textarea = document.getElementById("bulk-actions-textarea"); |
| 531 | const text = textarea.value; |
| 532 | |
| 533 | if (text) { |
| 534 | copyToClipboard(text) |
| 535 | .then(() => { |
| 536 | const btn = document.getElementById("modal-copy-btn"); |
| 537 | const originalHtml = btn.innerHTML; |
| 538 | btn.classList.add("copied"); |
| 539 | btn.innerHTML = '<i class="bi bi-check-lg"></i> Copied!'; |
| 540 | |
| 541 | setTimeout(() => { |
| 542 | btn.classList.remove("copied"); |
| 543 | btn.innerHTML = originalHtml; |
| 544 | }, 2000); |
| 545 | }) |
| 546 | .catch((err) => { |
| 547 | console.error("Failed to copy:", err); |
| 548 | }); |
| 549 | } |
| 550 | } |
| 551 | |
| 552 | // Close modal and dropdowns on Escape key |
| 553 | document.addEventListener("keydown", function (event) { |
nothing calls this directly
no test coverage detected