Исправляет ложные «Ошибки проверок»: GET /v1/ready отдаёт строки ok/memory, а не boolean. Уплотнён ReUI Frame/donut layout на вкладке Система. Co-authored-by: Cursor <[email protected]>
126 lines
3.2 KiB
TypeScript
126 lines
3.2 KiB
TypeScript
import type { DohResolverPolicy } from '@/types/api'
|
||
|
||
export function dohPolicyRu(policy: DohResolverPolicy | string | null | undefined): string {
|
||
switch (policy) {
|
||
case 'primary_only':
|
||
return 'Только первый'
|
||
case 'failover':
|
||
return 'Резервирование'
|
||
case 'union':
|
||
return 'Объединение'
|
||
default:
|
||
return 'Только первый'
|
||
}
|
||
}
|
||
|
||
export function moduleTypeRu(type: string): string {
|
||
switch (type) {
|
||
case 'AS_PREFIXES':
|
||
return 'AS (номера)'
|
||
case 'CDN_CIDRS':
|
||
return 'CDN CIDR'
|
||
case 'DOMAINS':
|
||
return 'Домены'
|
||
case 'IP_RANGES':
|
||
return 'IP-диапазоны'
|
||
default:
|
||
return type
|
||
}
|
||
}
|
||
|
||
const JOB_KIND_RU: Record<string, string> = {
|
||
module_refresh: 'Обновление модуля',
|
||
apply: 'Применение конфигурации',
|
||
rollback: 'Откат ревизии',
|
||
bird_reload: 'Перезагрузка BIRD',
|
||
}
|
||
|
||
export function jobKindRu(kind: string): string {
|
||
return JOB_KIND_RU[kind] ?? kind
|
||
}
|
||
|
||
const JOB_STATUS_RU: Record<string, string> = {
|
||
queued: 'В очереди',
|
||
running: 'Выполняется',
|
||
succeeded: 'Успешно',
|
||
failed: 'Ошибка',
|
||
error: 'Ошибка',
|
||
cancelled: 'Отменена',
|
||
canceled: 'Отменена',
|
||
pending: 'Ожидает',
|
||
approved: 'Одобрен',
|
||
revoked: 'Отозван',
|
||
active: 'Активен',
|
||
ok: 'В норме',
|
||
mismatch: 'Расхождение',
|
||
established: 'Установлена',
|
||
healthy: 'В норме',
|
||
warning: 'Предупреждение',
|
||
stale: 'Устарело',
|
||
overdue: 'Просрочено',
|
||
paused: 'Приостановлен',
|
||
disabled: 'Выключен',
|
||
archived: 'В архиве',
|
||
block: 'block',
|
||
accept: 'accept',
|
||
}
|
||
|
||
export function jobStatusRu(status: string): string {
|
||
return JOB_STATUS_RU[status.toLowerCase()] ?? status
|
||
}
|
||
|
||
export function bgpSessionStateRu(state: string | null | undefined): string {
|
||
if (!state) return '—'
|
||
if (state === 'Established') return 'Установлена'
|
||
return state
|
||
}
|
||
|
||
export function speakerOnlineLabel(agentOk: boolean | undefined): string {
|
||
if (agentOk === true) return 'В сети'
|
||
if (agentOk === false) return 'Не в сети'
|
||
return '—'
|
||
}
|
||
|
||
export function firewallClientStatusRu(status: string): string {
|
||
switch (status) {
|
||
case 'pending':
|
||
return 'Ожидает'
|
||
case 'approved':
|
||
return 'Одобрен'
|
||
case 'revoked':
|
||
return 'Отозван'
|
||
default:
|
||
return status
|
||
}
|
||
}
|
||
|
||
export function apiKeyRoleRu(role: string): string {
|
||
switch (role) {
|
||
case 'viewer':
|
||
return 'Наблюдатель'
|
||
case 'editor':
|
||
return 'Редактор'
|
||
case 'operator':
|
||
return 'Оператор'
|
||
case 'node':
|
||
return 'Нода'
|
||
default:
|
||
return role
|
||
}
|
||
}
|
||
|
||
export function readyCheckRu(key: string): string {
|
||
switch (key) {
|
||
case 'postgres':
|
||
return 'PostgreSQL'
|
||
case 'store':
|
||
return 'Хранилище'
|
||
case 'jobs':
|
||
return 'Очередь задач'
|
||
case 'store_backend':
|
||
return 'Бэкенд хранилища'
|
||
default:
|
||
return key
|
||
}
|
||
}
|