44 lines
1.7 KiB
TypeScript
44 lines
1.7 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
import { isRestricted } from "@/lib/access";
|
|
import { apiGet } from "@/lib/server-api";
|
|
import type { Me, Settings } from "@/lib/types";
|
|
import { SettingsForm } from "./form";
|
|
|
|
export default async function SettingsPage() {
|
|
const me = await apiGet<Me>("/auth/me");
|
|
if (isRestricted(me.account)) redirect("/");
|
|
const settings = await apiGet<Settings>("/settings");
|
|
|
|
return (
|
|
<>
|
|
<h1>Configurações</h1>
|
|
|
|
<section className="card">
|
|
<h2>Janela de consulta global</h2>
|
|
<p className="muted">
|
|
A PontoMais só é consultada dentro desta janela, no fuso de cada usuário. Usuários com janela personalizada não
|
|
são afetados por mudanças aqui. A mudança vale a partir da próxima consulta.
|
|
</p>
|
|
<SettingsForm initial={settings.window} disabled={me.account.role === "viewer"} />
|
|
</section>
|
|
|
|
<section className="card">
|
|
<h2>Parâmetros do servidor</h2>
|
|
<p className="muted">Definidos por variáveis de ambiente; alterá-los exige reiniciar os containers.</p>
|
|
<dl className="kv">
|
|
<dt>Reconciliação</dt>
|
|
<dd>a cada {settings.reconciliation_minutes} min</dd>
|
|
<dt>Consultas lentas</dt>
|
|
<dd>a cada {settings.slow_check_minutes} min (dia sem pontos e tarde com 3 pontos)</dd>
|
|
<dt>Despacho dos lembretes</dt>
|
|
<dd>a cada {settings.dispatch_minutes} min</dd>
|
|
<dt>Tolerância de atraso</dt>
|
|
<dd>{settings.late_tolerance_minutes} min (acima disso o lembrete expira)</dd>
|
|
<dt>Pausa por falhas</dt>
|
|
<dd>após {settings.api_failure_threshold} falhas seguidas na PontoMais</dd>
|
|
</dl>
|
|
</section>
|
|
</>
|
|
);
|
|
}
|