diff --git a/public/js/admin.js b/public/js/admin.js index 849c242..72d327d 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -581,14 +581,36 @@ var btn = qs('[data-action="copy-run-id"][data-run-id]'); if(!btn){return;} + function markCopiedRunId(ok){ + try { + var orig = btn.getAttribute('data-orig-text-run-id'); + if (!orig) { + orig = String(btn.textContent || ''); + btn.setAttribute('data-orig-text-run-id', orig); + } + + btn.textContent = ok ? '已复制' : '复制失败'; + btn.disabled = true; + + setTimeout(function(){ + try { + btn.textContent = orig; + btn.disabled = false; + } catch (e) {} + }, 1200); + } catch (e) {} + } + btn.addEventListener('click', function(){ var runId = btn.getAttribute('data-run-id') || ''; copyToClipboard(runId).then(function(){ + markCopiedRunId(true); if (toastSuccess('已复制 run_id:' + runId)) { return; } try { window.alert('已复制 run_id:' + runId); } catch (e) {} }).catch(function(){ + markCopiedRunId(false); try { window.alert('复制失败,请手动复制 run_id:' + runId); } catch (e) {} }); }); diff --git a/tests/Feature/AdminJsCopyRunIdButtonShouldHaveTemporaryFeedbackLogicTest.php b/tests/Feature/AdminJsCopyRunIdButtonShouldHaveTemporaryFeedbackLogicTest.php new file mode 100644 index 0000000..0c6759c --- /dev/null +++ b/tests/Feature/AdminJsCopyRunIdButtonShouldHaveTemporaryFeedbackLogicTest.php @@ -0,0 +1,22 @@ +assertIsString($js); + + $this->assertStringContainsString('data-orig-text-run-id', $js); + $this->assertStringContainsString("'已复制'", $js); + $this->assertStringContainsString("'复制失败'", $js); + } +}