fix: align AI menu order and labels (#14183)

This commit is contained in:
ssongliu
2026-10-26 11:29:20 +08:00
committed by GitHub
parent 14be5b7870
commit 9481a7535d
15 changed files with 61 additions and 45 deletions
+9 -9
View File
@@ -149,8 +149,8 @@ func LoadMenus() string {
IsShow: true,
Label: "AIProxyManagement",
Path: "/ai/ai-proxy/model-pool",
Sort: 75,
}, "AIModel")
Sort: 150,
}, "Agents")
item[i].Children = UpsertMenuByLabel(item[i].Children, dto.ShowMenu{
ID: "47",
Disabled: false,
@@ -158,8 +158,8 @@ func LoadMenus() string {
IsShow: true,
Label: "SkillsHub",
Path: "/ai/skills-hub",
Sort: 225,
}, "MCPServer")
Sort: 175,
}, "AIProxyManagement")
item[i].Children = UpsertMenuByLabel(item[i].Children, dto.ShowMenu{
ID: "45",
Disabled: false,
@@ -167,8 +167,8 @@ func LoadMenus() string {
IsShow: true,
Label: "AIBenchmark",
Path: "/ai/benchmark",
Sort: 250,
}, "SkillsHub")
Sort: 350,
}, "GPU")
continue
}
if item[i].Label != "Xpack-Menu" {
@@ -205,12 +205,12 @@ func MenuSort() []dto.MenuLabelSort {
{Label: "App-Menu", Sort: 200},
{Label: "AI-Menu", Sort: 300},
{Label: "AIModel", Sort: 50},
{Label: "AIProxyManagement", Sort: 75},
{Label: "Agents", Sort: 100},
{Label: "AIProxyManagement", Sort: 150},
{Label: "SkillsHub", Sort: 175},
{Label: "MCPServer", Sort: 200},
{Label: "SkillsHub", Sort: 225},
{Label: "AIBenchmark", Sort: 250},
{Label: "GPU", Sort: 300},
{Label: "AIBenchmark", Sort: 350},
{Label: "Website-Menu", Sort: 400},
{Label: "Website", Sort: 100},
{Label: "SSL", Sort: 200},
+1
View File
@@ -70,5 +70,6 @@ func coreMigrations() []*gormigrate.Migration {
migrations.AddAPIKeys,
migrations.AddOperationLogAPIKey,
migrations.UpdateAiMenuOrder,
migrations.UpdateAiMenuOrderV2,
}
}
+15
View File
@@ -1391,6 +1391,21 @@ var UpdateAiMenuOrder = &gormigrate.Migration{
},
}
var UpdateAiMenuOrderV2 = &gormigrate.Migration{
ID: "20261026-update-ai-menu-order-v2",
Migrate: func(tx *gorm.DB) error {
return helper.UpdateChildMenuSortByLabel(tx, "AI-Menu", []dto.MenuLabelSort{
{Label: "AIModel", Sort: 50},
{Label: "Agents", Sort: 100},
{Label: "AIProxyManagement", Sort: 150},
{Label: "SkillsHub", Sort: 175},
{Label: "MCPServer", Sort: 200},
{Label: "GPU", Sort: 300},
{Label: "AIBenchmark", Sort: 350},
})
},
}
var UpdateFirewallMenuPath = &gormigrate.Migration{
ID: "20260819-update-firewall-menu-path",
Migrate: func(tx *gorm.DB) error {
+3 -3
View File
@@ -468,7 +468,7 @@ const message = {
ssl: 'Certificate | Certificates',
database: 'Database | Databases',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'MCP Management',
container: 'Container | Containers',
cronjob: 'Cron Job | Cron Jobs',
system: 'System',
@@ -1387,7 +1387,7 @@ const message = {
sampleImportPlaceholder: 'One sample per line',
},
skillsHub: {
title: 'Skills Hub',
title: 'Skills Repository',
upload: 'Upload Skill',
importSkill: 'Import Skill',
repositoryAddress: 'Repository Address',
@@ -2719,7 +2719,7 @@ const message = {
detail: {
dashboard: 'Overview',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Skills Repository',
ai_proxy: 'AI Proxy',
ai_benchmark: 'Benchmark',
groups: 'Group',
+3 -3
View File
@@ -467,7 +467,7 @@ const message = {
ssl: 'Certificado | Certificados',
database: 'Base de datos | Bases de datos',
aiTools: 'IA',
mcp: 'MCP',
mcp: 'Gestión de MCP',
container: 'Contenedor | Contenedores',
cronjob: 'Tarea programada | Tareas programadas',
system: 'Sistema',
@@ -1393,7 +1393,7 @@ const message = {
apiKeyCount: 'Cantidad',
},
skillsHub: {
title: 'Skills Hub',
title: 'Repositorio de Skills',
upload: 'Subir Skill',
importSkill: 'Importar Skill',
repositoryAddress: 'Dirección del repositorio',
@@ -2762,7 +2762,7 @@ const message = {
detail: {
dashboard: 'Resumen general',
ai: 'IA',
skills_hub: 'Skills Hub',
skills_hub: 'Repositorio de Skills',
ai_proxy: 'Proxy de IA',
ai_benchmark: 'Benchmark',
groups: 'Grupo',
+3 -3
View File
@@ -463,7 +463,7 @@ const message = {
ssl: 'گواهی | گواهی‌ها',
database: 'پایگاه داده | پایگاه‌های داده',
aiTools: 'هوش مصنوعی',
mcp: 'MCP',
mcp: 'مدیریت MCP',
container: 'کانتینر | کانتینرها',
cronjob: 'وظیفه زمان‌بندی شده | وظایف زمان‌بندی شده',
system: 'سیستم',
@@ -1371,7 +1371,7 @@ const message = {
sampleImportPlaceholder: 'هر خط یک نمونه',
},
skillsHub: {
title: 'مرکز مهارت',
title: 'مخزن مهارت‌ها',
upload: 'بارگذاری مهارت',
importSkill: 'واردات مهارت',
repositoryAddress: 'آدرس مخزن',
@@ -2691,7 +2691,7 @@ const message = {
detail: {
dashboard: 'نمای کلی',
ai: 'هوش مصنوعی',
skills_hub: 'مرکز مهارت',
skills_hub: 'مخزن مهارت‌ها',
ai_proxy: 'پروکسی هوش مصنوعی',
ai_benchmark: 'معیار سنجش',
groups: 'گروه',
+3 -3
View File
@@ -465,7 +465,7 @@ const message = {
ssl: '証明書|証明書',
database: 'データベース|データベース',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'MCP 管理',
container: 'コンテナ|コンテナ',
cronjob: 'クロンジョブ|クロンの仕事',
system: 'システム',
@@ -1375,7 +1375,7 @@ const message = {
apiKeyCount: 'API キー数',
},
skillsHub: {
title: 'Skills Hub',
title: 'Skills リポジトリ',
upload: 'Skill をアップロード',
importSkill: 'Skill をインポート',
repositoryAddress: 'リポジトリアドレス',
@@ -2701,7 +2701,7 @@ const message = {
detail: {
dashboard: '概要',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Skills リポジトリ',
ai_proxy: 'AIプロキシ',
ai_benchmark: 'ベンチマーク',
groups: 'グループ',
+3 -3
View File
@@ -460,7 +460,7 @@ const message = {
ssl: '인증서 | 인증서들',
database: '데이터베이스 | 데이터베이스들',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'MCP 관리',
container: '컨테이너 | 컨테이너들',
cronjob: '크론 작업 | 크론 작업들',
system: '시스템',
@@ -1363,7 +1363,7 @@ const message = {
apiKeyCount: 'API 키 수',
},
skillsHub: {
title: 'Skills Hub',
title: 'Skills 저장소',
upload: 'Skill 업로드',
importSkill: 'Skill 가져오기',
repositoryAddress: '저장소 주소',
@@ -2658,7 +2658,7 @@ const message = {
detail: {
dashboard: '개요',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Skills 저장소',
ai_proxy: 'AI 프록시',
ai_benchmark: '벤치마크',
groups: '그룹',
+3 -3
View File
@@ -461,7 +461,7 @@ const message = {
ssl: 'ໃບຢັ້ງຢືນ | ໃບຢັ້ງຢືນ',
database: 'ຖານຂໍ້ມູນ | ຖານຂໍ້ມູນ',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'ການຈັດການ MCP',
container: 'ຄອນເທນເນີ | ຄອນເທນເນີ',
cronjob: 'ໜ້າວຽກຕັ້ງເວລາ | ໜ້າວຽກຕັ້ງເວລາ',
system: 'ລະບົບ',
@@ -1358,7 +1358,7 @@ const message = {
sampleImportPlaceholder: 'ໜຶ່ງຕົວຢ່າງຕໍ່ແຖວ',
},
skillsHub: {
title: 'ສູນລວມທັກສະ (Skills Hub)',
title: 'ຄັງທັກສະ',
upload: 'ອັບໂຫຼດທັກສະ',
importSkill: 'ນຳເຂົ້າທັກສະ',
repositoryAddress: 'ທີ່ຢູ່ຄັງເກັບ (Repository)',
@@ -2634,7 +2634,7 @@ const message = {
detail: {
dashboard: 'ພາບລວມ',
ai: 'AI',
skills_hub: 'ສູນລວມທັກສະ',
skills_hub: 'ຄັງທັກສະ',
ai_proxy: 'AI Proxy',
ai_benchmark: 'ການທົດສອບປະສິດທິພາບ',
groups: 'ກຸ່ມ',
+3 -3
View File
@@ -472,7 +472,7 @@ const message = {
ssl: 'Sijil',
database: 'Pangkalan Data',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'Pengurusan MCP',
container: 'Kontena',
cronjob: 'Tugas Berjadual',
system: 'System',
@@ -1399,7 +1399,7 @@ const message = {
apiKeyCount: 'Kuantiti',
},
skillsHub: {
title: 'Skills Hub',
title: 'Repositori Skills',
upload: 'Muat naik Skill',
importSkill: 'Import Kemahiran',
repositoryAddress: 'Alamat repositori',
@@ -2759,7 +2759,7 @@ const message = {
detail: {
dashboard: 'Overview',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Repositori Skills',
ai_proxy: 'Proksi AI',
ai_benchmark: 'Penanda Aras',
groups: 'Kumpulan',
+3 -3
View File
@@ -465,7 +465,7 @@ const message = {
ssl: 'Certificado | Certificados',
database: 'Banco de Dados | Bancos de Dados',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'Gerenciamento de MCP',
container: 'Contêineres',
cronjob: 'Tarefa Cron | Tarefas Cron',
system: 'Sistema',
@@ -1395,7 +1395,7 @@ const message = {
apiKeyCount: 'Quantidade',
},
skillsHub: {
title: 'Skills Hub',
title: 'Repositório de Skills',
upload: 'Enviar Skill',
importSkill: 'Importar Skill',
repositoryAddress: 'Endereço do repositório',
@@ -2759,7 +2759,7 @@ const message = {
detail: {
dashboard: 'Visão Geral',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Repositório de Skills',
ai_proxy: 'Proxy de IA',
ai_benchmark: 'Benchmark',
groups: 'Grupos',
+3 -3
View File
@@ -464,7 +464,7 @@ const message = {
ssl: 'Сертификат | Сертификаты',
database: 'База данных | Базы данных',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'Управление MCP',
container: 'Контейнер | Контейнеры',
cronjob: 'Cron | Задачи Cron',
system: 'Система',
@@ -1387,7 +1387,7 @@ const message = {
apiKeyCount: 'Количество',
},
skillsHub: {
title: 'Skills Hub',
title: 'Репозиторий Skills',
upload: 'Загрузить Skill',
importSkill: 'Импортировать Skill',
repositoryAddress: 'Адрес репозитория',
@@ -2743,7 +2743,7 @@ const message = {
detail: {
dashboard: 'Обзор',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Репозиторий Skills',
ai_proxy: 'AI Proxy',
ai_benchmark: 'Бенчмарк',
groups: 'Группы',
+3 -3
View File
@@ -468,7 +468,7 @@ const message = {
ssl: 'Sertifika | Sertifikalar',
database: 'Veritabanı | Veritabanları',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'MCP Yönetimi',
container: 'Konteyner | Konteynerler',
cronjob: 'Cron İşi | Cron İşleri',
system: 'Sistem',
@@ -1397,7 +1397,7 @@ const message = {
apiKeyCount: 'Miktar',
},
skillsHub: {
title: 'Skills Hub',
title: 'Skills Deposu',
upload: 'Skill yükle',
importSkill: 'Skill içe aktar',
repositoryAddress: 'Depo adresi',
@@ -2752,7 +2752,7 @@ const message = {
detail: {
dashboard: 'Genel Bakış',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Skills Deposu',
ai_proxy: 'AI Proxy',
ai_benchmark: 'Benchmark',
groups: 'Grup',
+3 -3
View File
@@ -447,7 +447,7 @@ const message = {
security: '安全',
database: '資料庫',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'MCP 管理',
container: '容器',
cronjob: '計劃任務',
system: '系統',
@@ -1314,7 +1314,7 @@ const message = {
apiKeyCount: '數量',
},
skillsHub: {
title: 'Skills Hub',
title: 'Skills 倉庫',
upload: '上傳 Skill',
importSkill: '匯入 Skill',
repositoryAddress: '倉庫地址',
@@ -2550,7 +2550,7 @@ const message = {
detail: {
dashboard: '概覽',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Skills 倉庫',
ai_proxy: 'AI 網關',
ai_benchmark: '基準測試',
groups: '分組',
+3 -3
View File
@@ -448,7 +448,7 @@ const message = {
security: '安全',
database: '数据库',
aiTools: 'AI',
mcp: 'MCP',
mcp: 'MCP 管理',
container: '容器',
cronjob: '计划任务',
system: '系统',
@@ -1327,7 +1327,7 @@ const message = {
sampleImportPlaceholder: '每行一个样本',
},
skillsHub: {
title: 'Skills Hub',
title: 'Skills 仓库',
upload: '上传 Skill',
importSkill: '导入 Skill',
repositoryAddress: '仓库地址',
@@ -2581,7 +2581,7 @@ const message = {
detail: {
dashboard: '概览',
ai: 'AI',
skills_hub: 'Skills Hub',
skills_hub: 'Skills 仓库',
ai_proxy: 'AI 网关',
ai_benchmark: '基准测试',
groups: '分组',