Compare commits

...

2 Commits

Author SHA1 Message Date
ce457babe7 fix: rename_kb returns json.dumps; delete btn uses pre-computed safe_name 2026-08-05 17:30:39 +08:00
e1f0c406ac fix(kb): escape namestr with json.dumps in delete button JS to prevent SyntaxError
Root cause: namestr directly concatenated into JS confirm() string broke
when KB name contained quotes or special chars. The SyntaxError prevented
event.stopPropagation() from executing, which caused the card click to
also fire (navigating to detail.ui).
2026-08-05 17:15:13 +08:00
2 changed files with 3 additions and 4 deletions

View File

@ -52,7 +52,7 @@ async with get_sor_context(env, 'rag') as sor:
"padding": "2px 8px", "borderRadius": "4px", "bgcolor": "#fee"},
"binds": [{"wid": "self", "event": "click", "actiontype": "script",
"script": "event.stopPropagation();"
"if(!confirm('\u786e\u8ba4\u5220\u9664\u77e5\u8bc6\u5e93\u300c" + namestr + "\u300d\uff1f\n\n\u8be5\u64cd\u4f5c\u4f1a\u5220\u9664\u77e5\u8bc6\u5e93\u5185\u6240\u6709\u6587\u4ef6\u3001\u6807\u7b7e\u548c\u6570\u636e\uff0c\u4e0d\u53ef\u6062\u590d\uff01'))return;"
"if(!confirm('\u786e\u8ba4\u5220\u9664\u77e5\u8bc6\u5e93\u300c' + " + safe_name + " + '\u300d\uff1f\n\n\u8be5\u64cd\u4f5c\u4f1a\u5220\u9664\u77e5\u8bc6\u5e93\u5185\u6240\u6709\u6587\u4ef6\u3001\u6807\u7b7e\u548c\u6570\u636e\uff0c\u4e0d\u53ef\u6062\u590d\uff01'))return;"
"fetch('/rag/knowledge_bases_list/delete_kb.dspy?kb_id=" + idstr + "').then(function(r){return r.json()}).then(function(d){"
"if(d.status==='error'){alert('\u5220\u9664\u5931\u8d25\uff1a'+d.error);return;}"
"window.location.href='/rag/knowledge_bases_list/index.ui';"

View File

@ -15,6 +15,5 @@ async with get_sor_context(env, 'rag') as sor:
"WHERE id=${id}$ AND (org_id=${org_id}$ OR org_id IS NULL)",
{"name": name, "desc": desc, "id": kb_id, "org_id": userorgid})
# Reload KB list page
return {"widgettype": "urlwidget",
"options": {"url": entire_url('/rag/knowledge_bases_list/index.ui')}}
return json.dumps({"widgettype": "urlwidget",
"options": {"url": entire_url('/rag/knowledge_bases_list/index.ui')}}, ensure_ascii=False)