import { api, toast } from "/api/monitoring-tg/static/js/api.js"; import "/api/monitoring-tg/static/js/access.js"; const form = document.getElementById("admin-form"); const password = document.getElementById("admin-password"); const statusEl = document.getElementById("admin-status"); const logoutBtn = document.getElementById("admin-logout"); function returnUrl() { const params = new URLSearchParams(location.search); return params.get("return") || "/"; } async function refresh() { const status = await api.accessMe(); if (status.is_admin) { statusEl.textContent = "Админ-доступ активен."; form.hidden = true; logoutBtn.hidden = false; } else if (!status.admin_password_enabled) { statusEl.textContent = "Админ пароль не задан. Доступ управляется IP-allowlist."; form.hidden = true; logoutBtn.hidden = true; } else { statusEl.textContent = "Введите админ пароль, чтобы открыть админские функции."; form.hidden = false; logoutBtn.hidden = true; setTimeout(() => password.focus(), 30); } } form.addEventListener("submit", async (e) => { e.preventDefault(); try { await api.adminLogin(password.value); password.value = ""; toast("Админ-доступ открыт", "success"); location.href = returnUrl(); } catch (err) { toast(err.message, "error"); } }); logoutBtn.addEventListener("click", async () => { await api.adminLogout(); location.reload(); }); refresh().catch(err => toast(err.message, "error"));