let token = ""; // ------------------ ADMIN LOGIN ------------------ async function loginAdmin() { const username = document.getElementById("adminUser").value; const password = document.getElementById("adminPass").value; if (!username || !password) { alert("Please enter username and password"); return; } const formData = new URLSearchParams(); formData.append("username", username); formData.append("password", password); formData.append("grant_type", "password"); try { const response = await fetch("/login", { method: "POST", headers: {"Content-Type":"application/x-www-form-urlencoded"}, body: formData }); const data = await response.json(); if (response.ok) { token = data.access_token; localStorage.setItem("token", token); alert("Login Successful"); document.getElementById("authSection").style.display = "none"; document.getElementById("adminPanel").style.display = "block"; loadDocs(); } else { alert(data.detail || "Login Failed"); } } catch (err) { console.error(err); alert("Login request failed"); } } // ------------------ UPLOAD DOCUMENT ------------------ async function uploadDocument() { const fileInput = document.getElementById("fileInput"); const file = fileInput.files[0]; if (!file) { alert("Please select a file"); return; } alert("File is being uploaded and indexed. Please wait ..."); const formData = new FormData(); formData.append("file", file); try { const res = await fetch("/admin/upload-document", { headers: {"Authorization": "Bearer " + token}, method: "POST", body: formData }); const data = await res.json(); if (data.message) { alert(data.message); } else if (data.error) { alert(data.error); } loadDocs(); } catch (err) { console.error(err); alert("Upload failed"); } } // ------------------ OTHER EXISTING FUNCTIONS ------------------ async function loadDocs() { try { const response = await fetch("/admin/list-documents", { headers: {"Authorization": "Bearer " + token} }); if (!response.ok) throw new Error("Failed to fetch documents"); const data = await response.json(); const table = document.getElementById("docTable"); if (!table) return; let rows = `