Skip to content

Commit 410f30b

Browse files
authored
perf: improve ui (#7178)
* perf: enhance layout responsiveness and text handling in stats page * perf: enhance subagent, future task UI - Updated the overall structure of the SubAgentPage component for better readability and maintainability. - Introduced a new dashboard layout with improved header and action buttons. - Replaced the old settings card with a more visually appealing setting card design. - Enhanced the agent list section with a more user-friendly display and added empty state handling. - Implemented unsaved changes notification and confirmation dialogs for better user interaction. - Refactored code for better clarity and organization, including the use of computed properties for state management.
1 parent 55f9903 commit 410f30b

17 files changed

Lines changed: 1517 additions & 406 deletions

dashboard/src/assets/mdi-subset/materialdesignicons-subset.css

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Auto-generated MDI subset – 252 icons */
1+
/* Auto-generated MDI subset – 256 icons */
22
/* Do not edit manually. Run: pnpm run subset-icons */
33

44
@font-face {
@@ -128,10 +128,22 @@
128128
content: "\F00ED";
129129
}
130130

131+
.mdi-calendar-blank-outline::before {
132+
content: "\F0B66";
133+
}
134+
135+
.mdi-calendar-clock-outline::before {
136+
content: "\F16E1";
137+
}
138+
131139
.mdi-calendar-edit::before {
132140
content: "\F08A7";
133141
}
134142

143+
.mdi-calendar-multiple::before {
144+
content: "\F00F1";
145+
}
146+
135147
.mdi-calendar-plus::before {
136148
content: "\F00F3";
137149
}
@@ -832,6 +844,10 @@
832844
content: "\F048A";
833845
}
834846

847+
.mdi-send-clock-outline::before {
848+
content: "\F1164";
849+
}
850+
835851
.mdi-server::before {
836852
content: "\F048B";
837853
}
Binary file not shown.
Binary file not shown.

dashboard/src/i18n/locales/en-US/features/conversation.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
"createdAt": "Created At",
3232
"updatedAt": "Updated At",
3333
"actions": "Actions"
34+
},
35+
"umoDisplay": {
36+
"parsed": "Parsed",
37+
"raw": "UMO"
3438
}
3539
},
3640
"actions": {
@@ -97,6 +101,8 @@
97101
"batchDeletePartial": "Delete completed: {deleted} successful, {failed} failed",
98102
"exportSuccess": "Export successful",
99103
"exportError": "Export failed",
100-
"noItemSelectedForExport": "Please select conversations to export first"
104+
"noItemSelectedForExport": "Please select conversations to export first",
105+
"copySuccess": "Copied",
106+
"copyError": "Copy failed"
101107
}
102-
}
108+
}

dashboard/src/i18n/locales/en-US/features/cron.json

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
{
2+
"header": {
3+
"eyebrow": "Automation",
4+
"live": "Live Sync"
5+
},
26
"page": {
37
"title": "Future Task Management",
48
"beta": "Experimental",
59
"subtitle": "See scheduled tasks for AstrBot. AstrBot will wake up, run them, and deliver the results.",
610
"proactive": {
7-
"supported": "Proactive delivery is available on: {platforms}",
11+
"supported": "Proactive delivery is available only on the configured platforms below",
812
"unsupported": "No proactive messaging platforms enabled. Turn them on in Platform settings."
913
}
1014
},
@@ -15,8 +19,41 @@
1519
"cancel": "Cancel",
1620
"submit": "Create"
1721
},
22+
"overview": {
23+
"totalTasks": "Total Tasks",
24+
"totalTasksNote": "Registered future tasks",
25+
"enabledTasks": "Enabled Tasks",
26+
"enabledTasksNote": "Tasks ready to wake and run",
27+
"oneOffTasks": "One-off Tasks",
28+
"recurringTasksNote": "{count} recurring tasks",
29+
"proactivePlatforms": "Proactive Platforms",
30+
"proactivePlatformsNote": "Platforms able to deliver results proactively"
31+
},
32+
"section": {
33+
"registered": {
34+
"title": "Task List",
35+
"subtitle": "Review the registered tasks, execution timing, and current state"
36+
},
37+
"delivery": {
38+
"title": "Delivery Status",
39+
"subtitle": "After a task runs, results are proactively sent back through supported platforms",
40+
"support": "Proactive delivery",
41+
"available": "Available",
42+
"unavailable": "Unavailable",
43+
"enabledPlatforms": "Enabled platforms"
44+
},
45+
"quickCreate": {
46+
"title": "Quick Create",
47+
"runMode": "Task mode",
48+
"target": "Targeting"
49+
},
50+
"platforms": {
51+
"title": "Supported Platforms"
52+
}
53+
},
1854
"table": {
1955
"title": "Registered Tasks",
56+
"subtitle": "Track cron setup, session target, last run history, and enabled state",
2057
"empty": "No tasks yet.",
2158
"headers": {
2259
"name": "Name",

dashboard/src/i18n/locales/en-US/features/subagent.json

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
2+
"header": {
3+
"eyebrow": "Orchestration"
4+
},
25
"page": {
36
"title": "SubAgent Orchestration",
47
"beta": "Experimental",
@@ -8,9 +11,20 @@
811
"refresh": "Refresh",
912
"save": "Save",
1013
"add": "Add SubAgent",
14+
"expand": "Expand",
15+
"collapse": "Collapse",
1116
"delete": "Delete",
1217
"close": "Close"
1318
},
19+
"overview": {
20+
"totalAgents": "Total SubAgents",
21+
"totalAgentsNote": "Configured delegate agents",
22+
"enabledAgents": "Enabled Agents",
23+
"enabledAgentsNote": "Agents available for handoff",
24+
"mainOrchestration": "Main Orchestration",
25+
"boundPersonas": "Bound Personas",
26+
"boundPersonasNote": "Agents with an attached persona"
27+
},
1428
"switches": {
1529
"enable": "Enable SubAgent orchestration",
1630
"enableHint": "Enable sub-agent functionality",
@@ -23,7 +37,9 @@
2337
},
2438
"section": {
2539
"title": "SubAgents",
26-
"globalSettings": "Global Settings"
40+
"subtitle": "Configure delegate agents, personas, and descriptions for the main LLM",
41+
"globalSettings": "Global Settings",
42+
"agentSetup": "Agent Setup"
2743
},
2844
"cards": {
2945
"statusEnabled": "Enabled",
@@ -33,7 +49,9 @@
3349
"switchLabel": "Enable",
3450
"previewTitle": "Preview: handoff tool shown to the main LLM",
3551
"personaChip": "Persona: {id}",
36-
"personaPreview": "PERSONA PREVIEW"
52+
"personaPreview": "Persona Preview",
53+
"noDescription": "No description yet",
54+
"previewHint": "Review the currently selected persona to verify the handoff target."
3755
},
3856
"form": {
3957
"nameLabel": "Agent name (used for transfer_to_{name})",
@@ -48,6 +66,9 @@
4866
"messages": {
4967
"loadConfigFailed": "Failed to load config",
5068
"loadPersonaFailed": "Failed to load persona list",
69+
"unsavedChangesNotice": "You have unsaved changes on this page. Save before leaving.",
70+
"unsavedChangesLeaveConfirm": "You have unsaved changes. Leaving will discard them. Continue?",
71+
"unsavedChangesReloadConfirm": "You have unsaved changes. Reloading will discard them. Continue?",
5172
"nameMissing": "A SubAgent is missing a name",
5273
"nameInvalid": "Invalid SubAgent name: only lowercase letters/numbers/underscores, starting with a letter",
5374
"nameDuplicate": "Duplicate SubAgent name: {name}",

dashboard/src/i18n/locales/ru-RU/features/conversation.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
"createdAt": "Создан",
3232
"updatedAt": "Обновлен",
3333
"actions": "Действия"
34+
},
35+
"umoDisplay": {
36+
"parsed": "Разобрано",
37+
"raw": "UMO"
3438
}
3539
},
3640
"actions": {
@@ -97,6 +101,8 @@
97101
"batchDeletePartial": "Удаление завершено: успешно {deleted}, ошибок {failed}",
98102
"exportSuccess": "Экспорт завершен",
99103
"exportError": "Ошибка экспорта",
100-
"noItemSelectedForExport": "Сначала выберите диалоги для экспорта"
104+
"noItemSelectedForExport": "Сначала выберите диалоги для экспорта",
105+
"copySuccess": "Скопировано",
106+
"copyError": "Не удалось скопировать"
101107
}
102-
}
108+
}

dashboard/src/i18n/locales/ru-RU/features/cron.json

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
{
2+
"header": {
3+
"eyebrow": "Automation",
4+
"live": "Живая синхронизация"
5+
},
26
"page": {
37
"title": "Запланированные задачи",
48
"beta": "Экспериментальные функции",
59
"subtitle": "Управление будущими задачами AstrBot. Бот автоматически проснется, выполнит задачу и отправит результат. Требуется включить «Проактивные способности» в конфигурации.",
610
"proactive": {
7-
"supported": "Отправка результатов поддерживается на платформах: {platforms}",
11+
"supported": "Отправка результатов поддерживается только на указанных ниже настроенных платформах",
812
"unsupported": "Нет платформ, поддерживающих проактивные сообщения. Включите их в настройках платформ."
913
}
1014
},
@@ -15,8 +19,41 @@
1519
"cancel": "Отмена",
1620
"submit": "Создать"
1721
},
22+
"overview": {
23+
"totalTasks": "Всего задач",
24+
"totalTasksNote": "Все зарегистрированные будущие задачи",
25+
"enabledTasks": "Активные задачи",
26+
"enabledTasksNote": "Задачи, которые будут автоматически выполнены",
27+
"oneOffTasks": "Разовые задачи",
28+
"recurringTasksNote": "Повторяющихся задач: {count}",
29+
"proactivePlatforms": "Проактивные платформы",
30+
"proactivePlatformsNote": "Платформы, способные отправлять результат сами"
31+
},
32+
"section": {
33+
"registered": {
34+
"title": "Список задач",
35+
"subtitle": "Просматривайте зарегистрированные задачи, время запуска и состояние"
36+
},
37+
"delivery": {
38+
"title": "Статус доставки",
39+
"subtitle": "После выполнения задачи результат будет отправлен обратно через поддерживаемые платформы",
40+
"support": "Проактивная доставка",
41+
"available": "Доступна",
42+
"unavailable": "Недоступна",
43+
"enabledPlatforms": "Включенные платформы"
44+
},
45+
"quickCreate": {
46+
"title": "Быстрое создание",
47+
"runMode": "Режим задачи",
48+
"target": "Целевой контекст"
49+
},
50+
"platforms": {
51+
"title": "Поддерживаемые платформы"
52+
}
53+
},
1854
"table": {
1955
"title": "Список задач",
56+
"subtitle": "Отслеживайте cron, целевую сессию, историю запусков и состояние",
2057
"empty": "Задач пока нет.",
2158
"headers": {
2259
"name": "Имя",
@@ -63,4 +100,4 @@
63100
"createSuccess": "Задача создана",
64101
"createFailed": "Ошибка создания"
65102
}
66-
}
103+
}

dashboard/src/i18n/locales/ru-RU/features/subagent.json

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
2+
"header": {
3+
"eyebrow": "Orchestration"
4+
},
25
"page": {
36
"title": "Оркестрация SubAgent",
47
"beta": "Экспериментально",
@@ -8,9 +11,20 @@
811
"refresh": "Обновить",
912
"save": "Сохранить",
1013
"add": "Добавить SubAgent",
14+
"expand": "Развернуть",
15+
"collapse": "Свернуть",
1116
"delete": "Удалить",
1217
"close": "Закрыть"
1318
},
19+
"overview": {
20+
"totalAgents": "Всего SubAgent",
21+
"totalAgentsNote": "Количество настроенных под-агентов",
22+
"enabledAgents": "Активные агенты",
23+
"enabledAgentsNote": "Под-агенты, доступные для handoff",
24+
"mainOrchestration": "Основная оркестрация",
25+
"boundPersonas": "Привязанные персонажи",
26+
"boundPersonasNote": "Под-агенты с выбранной персоной"
27+
},
1428
"switches": {
1529
"enable": "Включить оркестрацию SubAgent",
1630
"enableHint": "Включить функциональность под-агентов",
@@ -23,7 +37,9 @@
2337
},
2438
"section": {
2539
"title": "Субагенты",
26-
"globalSettings": "Глобальные настройки"
40+
"subtitle": "Настройте делегируемых агентов, персонажей и описания для основного LLM",
41+
"globalSettings": "Глобальные настройки",
42+
"agentSetup": "Настройка агента"
2743
},
2844
"cards": {
2945
"statusEnabled": "Включено",
@@ -33,7 +49,9 @@
3349
"switchLabel": "Включить",
3450
"previewTitle": "Предпросмотр: инструмент handoff, видимый основному LLM",
3551
"personaChip": "Персонаж: {id}",
36-
"personaPreview": "ПРЕДПРОСМОТР ПЕРСОНАЖА"
52+
"personaPreview": "Предпросмотр персонажа",
53+
"noDescription": "Описание пока не задано",
54+
"previewHint": "Просмотрите выбранную персону, чтобы проверить цель handoff."
3755
},
3856
"form": {
3957
"nameLabel": "Имя агента (используется для transfer_to_{name})",
@@ -48,6 +66,9 @@
4866
"messages": {
4967
"loadConfigFailed": "Не удалось загрузить конфигурацию",
5068
"loadPersonaFailed": "Не удалось загрузить список персонажей",
69+
"unsavedChangesNotice": "На странице есть несохраненные изменения. Сохраните их перед уходом.",
70+
"unsavedChangesLeaveConfirm": "Есть несохраненные изменения. При уходе со страницы они будут потеряны. Продолжить?",
71+
"unsavedChangesReloadConfirm": "Есть несохраненные изменения. Обновление конфигурации их сбросит. Продолжить?",
5172
"nameMissing": "У SubAgent отсутствует имя",
5273
"nameInvalid": "Недопустимое имя SubAgent: только строчные латинские буквы/цифры/подчеркивания, должно начинаться с буквы",
5374
"nameDuplicate": "Дублирующееся имя SubAgent: {name}",
@@ -62,4 +83,4 @@
6283
"subtitle": "Добавьте первого под-агента, чтобы начать",
6384
"action": "Создать первого агента"
6485
}
65-
}
86+
}

dashboard/src/i18n/locales/zh-CN/core/navigation.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"providers": "模型提供商",
66
"commands": "指令管理",
77
"persona": "人格设定",
8-
"subagent": "SubAgent 编排",
8+
"subagent": "子代理编排",
99
"toolUse": "MCP",
1010
"extension": "插件",
1111
"extensionTabs": {

0 commit comments

Comments
 (0)