async function loadUsers() {
const r = await fetch("/admin/users");
const users = await r.json();
const container = document.getElementById("users");
container.innerHTML = "";
users.forEach(u => {
const div = document.createElement("div");
div.className = "user-card";
div.innerHTML = `
${u.name} (${u.email}) — ${u.role}
`;
container.appendChild(div);
});
}
async function selectUser(email) {
const r = await fetch(`/admin/conversations/${email}`);
const convs = await r.json();
const details = document.getElementById("user-details");
details.innerHTML = `
${email}
Conversations
${convs.map(c => `- ${c.title}
`).join("")}
ACL
`;
loadACL(email);
}
async function loadPlans() {
const r = await fetch("/admin/plans");
const plans = await r.json();
const div = document.getElementById("plans");
div.innerHTML = plans.map(p => `
${p.name}
R$ ${p.price_monthly}/mês
Prioridade: ${p.priority_queue}
`).join("");
}
async function loadACL(email) {
const r = await fetch("/admin/users");
const users = await r.json();
const u = users.find(x => x.email === email);
const aclDiv = document.getElementById("acl");
aclDiv.innerHTML = `
${Object.keys(u).map(key => {
if (typeof u[key] === "boolean") {
return `
`;
}
return "";
}).join("")}
`;
}
async function updateACL(email, key, value) {
await fetch(`/admin/update_acl/${email}`, {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({[key]: value})
});
}
async function promote(email) {
await fetch(`/admin/promote/${email}`, {method: "POST"});
loadUsers();
}
window.onload = loadUsers;