36 lines
1.7 KiB
JavaScript
36 lines
1.7 KiB
JavaScript
"use strict";
|
|
window.rustProxyPrometheusToken = (() => {
|
|
let isConfigured = false;
|
|
const hideSecret = () => { $("prom-token-secret").textContent = ""; $("prom-token-secret-wrap").hidden = true; };
|
|
function showStatus() {
|
|
$("prom-token-status").textContent = t(isConfigured ? "promTokenConfigured" : "promTokenMissing");
|
|
$("prom-token-revoke").disabled = !isConfigured;
|
|
}
|
|
async function refresh() {
|
|
if (!authenticated) return;
|
|
try {
|
|
const result = await api("/api/prometheus-token");
|
|
isConfigured = !!result.configured;
|
|
showStatus();
|
|
} catch (error) { if (error.status !== 401) toast(error.message, true); }
|
|
}
|
|
$("prom-token-generate").addEventListener("click", async event => {
|
|
const button = event.currentTarget; button.disabled = true; hideSecret();
|
|
try {
|
|
const result = await api("/api/prometheus-token", { method: "POST", body: "{}" });
|
|
isConfigured = true; $("prom-token-secret").textContent = result.token;
|
|
$("prom-token-secret-wrap").hidden = false;
|
|
showStatus(); window.rustProxySettings?.render?.();
|
|
} catch (error) { toast(error.message, true); }
|
|
finally { button.disabled = false; }
|
|
});
|
|
$("prom-token-revoke").addEventListener("click", async () => {
|
|
if (!(await appConfirm(t("confirmDelete"), { danger: true }))) return;
|
|
try {
|
|
await api("/api/prometheus-token", { method: "DELETE" });
|
|
isConfigured = false; hideSecret(); showStatus(); window.rustProxySettings?.render?.();
|
|
} catch (error) { toast(error.message, true); }
|
|
});
|
|
return { configured: () => isConfigured, refresh, hideSecret, reset() { isConfigured = false; hideSecret(); showStatus(); } };
|
|
})();
|