From f9d3b4ad272c7655c5ac8b8089a3c3f2f06a89ec Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 14 Aug 2026 09:09:50 +0800 Subject: [PATCH] fix(software): refresh job center after submission --- tests/test_static_vendor.py | 8 ++++++++ web/static/js/chat.js | 3 +++ web/static/js/software_jobs.js | 1 + 3 files changed, 12 insertions(+) diff --git a/tests/test_static_vendor.py b/tests/test_static_vendor.py index 939e8d7..3d8ab6e 100644 --- a/tests/test_static_vendor.py +++ b/tests/test_static_vendor.py @@ -45,7 +45,15 @@ class StaticVendorTests(unittest.TestCase): self.assertIn("/cancel`", source) self.assertIn("分析结果", source) self.assertIn("refreshCurrentTaskFiles(job.task_id)", source) + self.assertIn( + 'document.addEventListener("software-job-submitted", refreshSoftwareJobs)', + source, + ) self.assertIn("export function refreshCurrentTaskFiles(taskId)", chat_source) + self.assertIn( + 'document.dispatchEvent(new Event("software-job-submitted"))', + chat_source, + ) def test_admin_can_create_windows_node_enrollment_code(self) -> None: html = ADMIN_HTML.read_text(encoding="utf-8") diff --git a/web/static/js/chat.js b/web/static/js/chat.js index 5fd3f85..2a66fa7 100644 --- a/web/static/js/chat.js +++ b/web/static/js/chat.js @@ -3085,6 +3085,9 @@ function handleSseEvent(ev, asstCard, ctx) { closeTextSeg(ctx); // 结果卡追加到当前文字段之下,之后新文字另起底部段 const banner = extractMediaBanner(toolName, txtStr); const failed = isToolResultFailure(txtStr); + if (toolName === "software_job_submit" && !failed) { + document.dispatchEvent(new Event("software-job-submitted")); + } const det = runningDet || document.createElement("details"); det.classList.add("tool-call", "activity"); det.classList.toggle("failed", failed); diff --git a/web/static/js/software_jobs.js b/web/static/js/software_jobs.js index f060683..4d6f85f 100644 --- a/web/static/js/software_jobs.js +++ b/web/static/js/software_jobs.js @@ -58,6 +58,7 @@ export function initSoftwareJobs() { $("software-job-close").onclick = closeDrawer; $("software-job-backdrop").onclick = closeDrawer; $("software-job-list").addEventListener("scroll", onListScroll); + document.addEventListener("software-job-submitted", refreshSoftwareJobs); document.addEventListener("keydown", (event) => { if (event.key === "Escape" && expanded) closeDrawer(); });