scvcoder commited on
Commit
f0077b3
·
verified ·
1 Parent(s): 0b5cf16

Listen for kpaa-route postMessage from Open WebUI iframe -> auto clear refs

Browse files
Files changed (1) hide show
  1. src/kpaa/server.py +14 -3
src/kpaa/server.py CHANGED
@@ -949,15 +949,26 @@ async function poll() {
949
  setInterval(poll, 1000);
950
  poll();
951
 
952
- // 버튼백엔드의 _last_refs 비우고 우측 패널 비움.
953
- document.getElementById("clear-btn").addEventListener("click", async () => {
954
  try {
955
  await fetch("/api/clear-references", { method: "POST", cache: "no-store" });
956
  } catch (_) {}
957
- // 즉시 UI 비우기 (다음 polling 으로도 새 빈 데이터 도착)
958
  refsEl.innerHTML = '<div class="refs-empty">새 검색 대기 중…</div>';
959
  refsCountEl.textContent = "";
960
  metaEl.textContent = "Open WebUI에서 질문하면 LLM이 본 근거가 여기에 표시됩니다.";
 
 
 
 
 
 
 
 
 
 
 
 
961
  });
962
  </script>
963
  </body></html>"""
 
949
  setInterval(poll, 1000);
950
  poll();
951
 
952
+ // 공통 비우동작버튼 클릭 + iframe route 변경 지에서 사용.
953
+ async function clearRefsUI() {
954
  try {
955
  await fetch("/api/clear-references", { method: "POST", cache: "no-store" });
956
  } catch (_) {}
 
957
  refsEl.innerHTML = '<div class="refs-empty">새 검색 대기 중…</div>';
958
  refsCountEl.textContent = "";
959
  metaEl.textContent = "Open WebUI에서 질문하면 LLM이 본 근거가 여기에 표시됩니다.";
960
+ lastTs = 0; // 다음 polling 이 새 빈 데이터를 render 하도록 강제
961
+ }
962
+
963
+ // 초기화 버튼 — 백엔드의 _last_refs 를 비우고 우측 패널 즉시 비움.
964
+ document.getElementById("clear-btn").addEventListener("click", clearRefsUI);
965
+
966
+ // Open WebUI iframe 의 route 변경 자동 감지 — Dockerfile 에서 주입한
967
+ // postMessage polling 스크립트가 URL 변경 시 'kpaa-route' 메시지 전송.
968
+ window.addEventListener("message", (e) => {
969
+ if (e.data && e.data.type === "kpaa-route") {
970
+ clearRefsUI();
971
+ }
972
  });
973
  </script>
974
  </body></html>"""