Files
EdgeAdmin/internal/web/helpers/menu.go

185 lines
4.7 KiB
Go
Raw Normal View History

2021-11-29 20:35:47 +08:00
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
//go:build !plus
2021-11-29 20:35:47 +08:00
package helpers
import (
"github.com/TeaOSLab/EdgeAdmin/internal/configloaders"
2023-06-28 09:14:07 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/langs"
"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
2021-11-29 20:35:47 +08:00
"github.com/iwind/TeaGo/maps"
)
2023-06-28 09:14:07 +08:00
func FindAllMenuMaps(langCode string, nodeLogsType string, countUnreadNodeLogs int64, countUnreadIPItems int64) []maps.Map {
2021-11-29 20:35:47 +08:00
return []maps.Map{
{
"code": "dashboard",
"module": configloaders.AdminModuleCodeDashboard,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuDashboard),
2021-11-29 20:35:47 +08:00
"icon": "dashboard",
},
{
"code": "servers",
"module": configloaders.AdminModuleCodeServer,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServers),
"subtitle": "",
2021-11-29 20:35:47 +08:00
"icon": "clone outsize",
"subItems": []maps.Map{
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerAccessLogs),
2022-05-12 11:04:37 +08:00
"url": "/servers/logs",
"code": "log",
2021-11-29 20:35:47 +08:00
},
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerCerts),
2021-11-29 20:35:47 +08:00
"url": "/servers/certs",
"code": "cert",
},
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerGroups),
"url": "/servers/groups",
"code": "group",
},
{
"name": "-",
"url": "",
"code": "",
},
2021-11-29 20:35:47 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerCachePolicies),
2021-11-29 20:35:47 +08:00
"url": "/servers/components/cache",
"code": "cache",
},
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerPurgeFetchCaches),
"url": "/servers/components/cache/batch",
"code": "cacheBatch",
},
2022-05-12 11:04:37 +08:00
{
"name": "-",
"url": "",
"code": "",
},
2021-11-29 20:35:47 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerWAFPolicies),
2021-11-29 20:35:47 +08:00
"url": "/servers/components/waf",
"code": "waf",
},
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerIPLists),
"url": "/servers/iplists",
"code": "iplist",
"badge": countUnreadIPItems,
2021-11-29 20:35:47 +08:00
},
2022-05-12 11:04:37 +08:00
{
"name": "-",
"url": "",
"code": "",
},
2021-11-29 20:35:47 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerMetrics),
2021-11-29 20:35:47 +08:00
"url": "/servers/metrics",
"code": "metric",
},
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuServerGlobalSettings),
2021-11-29 20:35:47 +08:00
"url": "/servers/components",
"code": "global",
},
},
},
{
"code": "clusters",
"module": configloaders.AdminModuleCodeNode,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuNodes),
2023-06-12 19:46:37 +08:00
"subtitle": "",
2021-11-29 20:35:47 +08:00
"icon": "cloud",
"subItems": []maps.Map{
2023-06-12 19:46:37 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuNodeClusters),
2023-06-12 19:46:37 +08:00
"url": "/clusters",
"code": "cluster",
},
2021-11-29 20:35:47 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuNodeLogs),
2021-11-29 20:35:47 +08:00
"url": "/clusters/logs?type=" + nodeLogsType,
"code": "log",
"badge": countUnreadNodeLogs,
},
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuNodeRegions),
2021-11-29 20:35:47 +08:00
"url": "/clusters/regions",
"code": "region",
},
2023-06-12 19:46:37 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuNodeSSHGrants),
2023-06-12 19:46:37 +08:00
"url": "/clusters/grants",
"code": "grant",
},
2021-11-29 20:35:47 +08:00
},
},
{
"code": "dns",
"module": configloaders.AdminModuleCodeDNS,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuDNS),
2023-06-12 19:46:37 +08:00
"subtitle": "",
2021-11-29 20:35:47 +08:00
"icon": "globe",
"subItems": []maps.Map{
2023-06-12 19:46:37 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuDNSClusters),
2023-06-12 19:46:37 +08:00
"url": "/dns",
"code": "cluster",
},
2021-11-29 20:35:47 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuDNSProviders),
2021-11-29 20:35:47 +08:00
"url": "/dns/providers",
"code": "provider",
},
2022-12-13 18:21:31 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuDNSIssues),
2022-12-13 18:21:31 +08:00
"url": "/dns/issues",
"code": "issue",
},
2021-11-29 20:35:47 +08:00
},
},
{
"code": "users",
"module": configloaders.AdminModuleCodeUser,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuUsers),
2021-11-29 20:35:47 +08:00
"icon": "users",
},
{
"code": "admins",
"module": configloaders.AdminModuleCodeAdmin,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuAdmins),
2023-06-12 19:46:37 +08:00
"subtitle": "",
2021-11-29 20:35:47 +08:00
"icon": "user secret",
},
{
"code": "log",
"module": configloaders.AdminModuleCodeLog,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuLogs),
2021-11-29 20:35:47 +08:00
"icon": "history",
},
{
"code": "settings",
"module": configloaders.AdminModuleCodeSetting,
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuSettings),
2023-06-12 19:46:37 +08:00
"subtitle": "",
2021-11-29 20:35:47 +08:00
"icon": "setting",
"subItems": []maps.Map{
2023-06-12 19:46:37 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuSettingBasicSettings),
2023-06-12 19:46:37 +08:00
"url": "/settings",
"code": "basic",
},
2021-11-29 20:35:47 +08:00
{
2023-06-28 09:14:07 +08:00
"name": langs.Message(langCode, codes.AdminMenuSettingAdvancedSettings),
2021-11-29 20:35:47 +08:00
"url": "/settings/advanced",
"code": "advanced",
},
},
},
}
}