From 7b14e15afbfbd73053162cdacabec1cb7e202d4e Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 22 Jun 2026 10:56:40 +0800 Subject: [PATCH] refactor(frontend): simplify routing paths for certificates, dns-accounts and ip-groups - Remove /websites prefix from TLS certificates and DNS accounts routes. - Remove /waf prefix from IP groups route. - Correct relative import paths for shared components. --- docs/changelog/index.md | 2 ++ frontend/app/(main)/certificates/page.tsx | 12 ++++++------ frontend/app/(main)/dns-accounts/page.tsx | 4 ++-- frontend/app/(main)/ip-groups/page.tsx | 10 +++++----- frontend/lib/navigation/openflare-nav.ts | 10 +++++----- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/changelog/index.md b/docs/changelog/index.md index ea4a9164..61f09fe6 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -22,6 +22,8 @@ sidebar: false ### 变更 +- 前端路由调整:将 TLS 证书和 DNS 账号的路由地址移出 `/websites`(分别变更为顶级路由 `/certificates` 和 `/dns-accounts`),将 WAF IP 组的路由地址移出 `/waf`(变更为顶级路由 `/ip-groups`)。 + - 前端页面鉴权改为默认私域:除 `/login`、`/register`、`/callback` 外,未登录访问任意页面(含数据看板 `/`)均重定向至登录页。 ### 修复 diff --git a/frontend/app/(main)/certificates/page.tsx b/frontend/app/(main)/certificates/page.tsx index d380500e..035ff877 100644 --- a/frontend/app/(main)/certificates/page.tsx +++ b/frontend/app/(main)/certificates/page.tsx @@ -24,12 +24,12 @@ import type {TlsCertificateItem} from '@/lib/services/openflare'; import {TlsCertificateService} from '@/lib/services/openflare'; import {formatDateTime} from '@/lib/utils'; -import {CertificateApplyDialog} from '../components/certificate-apply-dialog'; -import {CertificateDetailDialog} from '../components/certificate-detail-dialog'; -import {CertificateEditorDialog} from '../components/certificate-editor-dialog'; -import {CertificateImportDialog} from '../components/certificate-import-dialog'; -import {WebsiteStatusBadge} from '../components/status-badge'; -import {getCertificateStatus, getErrorMessage} from '../components/website-utils'; +import {CertificateApplyDialog} from '../websites/components/certificate-apply-dialog'; +import {CertificateDetailDialog} from '../websites/components/certificate-detail-dialog'; +import {CertificateEditorDialog} from '../websites/components/certificate-editor-dialog'; +import {CertificateImportDialog} from '../websites/components/certificate-import-dialog'; +import {WebsiteStatusBadge} from '../websites/components/status-badge'; +import {getCertificateStatus, getErrorMessage} from '../websites/components/website-utils'; const certificatesQueryKey = ['openflare', 'tls-certificates']; diff --git a/frontend/app/(main)/dns-accounts/page.tsx b/frontend/app/(main)/dns-accounts/page.tsx index 2df023f1..f48176cd 100644 --- a/frontend/app/(main)/dns-accounts/page.tsx +++ b/frontend/app/(main)/dns-accounts/page.tsx @@ -24,8 +24,8 @@ import type {DnsAccountItem} from '@/lib/services/openflare'; import {DnsAccountService} from '@/lib/services/openflare'; import {formatDateTime} from '@/lib/utils'; -import {DnsAccountCreateDialog} from '../components/dns-account-create-dialog'; -import {getErrorMessage} from '../components/website-utils'; +import {DnsAccountCreateDialog} from '../websites/components/dns-account-create-dialog'; +import {getErrorMessage} from '../websites/components/website-utils'; const dnsAccountsQueryKey = ['openflare', 'dns-accounts']; diff --git a/frontend/app/(main)/ip-groups/page.tsx b/frontend/app/(main)/ip-groups/page.tsx index 63873d68..ce74446a 100644 --- a/frontend/app/(main)/ip-groups/page.tsx +++ b/frontend/app/(main)/ip-groups/page.tsx @@ -23,11 +23,11 @@ import {LoadingStateWithBorder} from '@/components/layout/loading'; import type {WAFIPGroup, WAFIPGroupAutoTestResult, WAFIPGroupPayload,} from '@/lib/services/openflare'; import {WafService} from '@/lib/services/openflare'; -import {buildIPGroupPayloadFromGroup, getErrorMessage, parseAutomaticConfig} from '../components/helpers'; -import {IPGroupDialog} from '../components/ip-group-dialog'; -import {IPGroupTestDialog} from '../components/ip-group-test-dialog'; -import {IPGroupViewDialog} from '../components/ip-group-view-dialog'; -import {IPGroupsTable} from '../components/ip-groups-table'; +import {buildIPGroupPayloadFromGroup, getErrorMessage, parseAutomaticConfig} from '../waf/components/helpers'; +import {IPGroupDialog} from '../waf/components/ip-group-dialog'; +import {IPGroupTestDialog} from '../waf/components/ip-group-test-dialog'; +import {IPGroupViewDialog} from '../waf/components/ip-group-view-dialog'; +import {IPGroupsTable} from '../waf/components/ip-groups-table'; const ipGroupsQueryKey = ['openflare', 'waf', 'ip-groups']; diff --git a/frontend/lib/navigation/openflare-nav.ts b/frontend/lib/navigation/openflare-nav.ts index 395685a6..30456e57 100644 --- a/frontend/lib/navigation/openflare-nav.ts +++ b/frontend/lib/navigation/openflare-nav.ts @@ -41,7 +41,7 @@ export const openflareSecurityNavGroup: OpenFlareNavGroup = { icon: ShieldCheck, items: [ {title: 'WAF', url: '/waf'}, - {title: 'IP 组', url: '/waf/ip-groups'}, + {title: 'IP 组', url: '/ip-groups'}, ], }; @@ -51,8 +51,8 @@ export const openflareWebsiteNavGroup: OpenFlareNavGroup = { icon: Globe, items: [ {title: '域名列表', url: '/websites', childUrls: ['/websites/detail']}, - {title: 'TLS证书', url: '/websites/certificates'}, - {title: 'DNS账号', url: '/websites/dns-accounts'}, + {title: 'TLS证书', url: '/certificates'}, + {title: 'DNS账号', url: '/dns-accounts'}, {title: '源站地址', url: '/origins', childUrls: ['/origins/detail']}, ], }; @@ -85,8 +85,8 @@ export const openflareNavItems: OpenFlareNavItem[] = openflareSidebarNav /** 网站模块页内二级导航 */ export const openflareWebsiteSubNav = [ {title: '网站列表', url: '/websites'}, - {title: '证书', url: '/websites/certificates'}, - {title: 'DNS 账号', url: '/websites/dns-accounts'}, + {title: '证书', url: '/certificates'}, + {title: 'DNS 账号', url: '/dns-accounts'}, ] as const; const nonConsoleRoutePrefixes = ['/admin', '/settings', '/files', '/home', '/login', '/register', '/docs'];