fix(web): целостность состояний, русификация обвязки, RBAC-гейтинг навигации, чистка мёртвого кода

This commit is contained in:
Denozordec
2026-09-25 01:26:14 +07:00
parent 0b426fa7ae
commit 28f1f35f16
12 changed files with 205 additions and 228 deletions
+8 -8
View File
@@ -459,7 +459,7 @@ function AgentsPage() {
{
id: 'add',
title: 'Добавить агента',
description: 'Invite + install one-liner',
description: 'Приглашение и команда установки',
icon: <Plus aria-hidden />,
iconClassName: 'text-primary [&_svg]:text-current',
badgeLabel: 'Открыть',
@@ -467,8 +467,8 @@ function AgentsPage() {
},
{
id: 'pending',
title: 'Pending',
description: `${counts.pending} ждут approve`,
title: 'Ожидают одобрения',
description: `${counts.pending} ждут подтверждения`,
icon: <Inbox aria-hidden />,
iconClassName: 'text-warning [&_svg]:text-current',
badgeLabel: 'Показать',
@@ -477,7 +477,7 @@ function AgentsPage() {
{
id: 'rules',
title: 'Наборы правил',
description: 'Политика firewall',
description: 'Политика фаервола',
to: '/rules',
icon: <ShieldIcon aria-hidden />,
iconClassName: 'text-info [&_svg]:text-current',
@@ -578,7 +578,7 @@ function AgentsPage() {
<PageShell>
<PageHeader
title="Агенты"
description="Ops console: invite, install, approve"
description="Приглашение, установка и одобрение агентов"
actions={
<>
<UpdatedAtLabel updatedAt={agentsQ.dataUpdatedAt} />
@@ -595,9 +595,9 @@ function AgentsPage() {
<Frame dense spacing="sm">
<FrameHeader className="flex-row items-start justify-between gap-3">
<div className="flex min-w-0 flex-col gap-px">
<FrameTitle>Attention — pending approve</FrameTitle>
<FrameTitle>Требуют одобрения</FrameTitle>
<FrameDescription>
{counts.pending} агент(ов) ждут одобрения (DNA approval inbox)
{counts.pending} агент(ов) ждут одобрения
</FrameDescription>
</div>
<div className="flex shrink-0 flex-wrap gap-2">
@@ -717,7 +717,7 @@ function AgentsPage() {
}
emptyDescription={
items.length === 0
? 'Создайте агента — он появится в каталоге как Invited с командой установки.'
? 'Создайте агента — он появится в каталоге со статусом «Приглашён» и командой установки.'
: undefined
}
emptyAction={items.length === 0 ? addButton : undefined}