This commit is contained in:
@@ -43,4 +43,51 @@ public static class AdminNavigationCatalog
|
||||
new("공통관리", "/admin/common-codes", Icons.Material.Filled.Apps, AllowedRoles: ["Admin"]),
|
||||
]),
|
||||
];
|
||||
|
||||
public static bool IsActive(AdminNavigationItem item, string currentPath)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(currentPath))
|
||||
return false;
|
||||
|
||||
var normalizedPath = NormalizePath(currentPath);
|
||||
var normalizedHref = NormalizePath(item.Href);
|
||||
|
||||
return item.IsExact
|
||||
? string.Equals(normalizedPath, normalizedHref, StringComparison.OrdinalIgnoreCase)
|
||||
: normalizedPath.StartsWith(normalizedHref, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
public static string GetLabel(string currentPath)
|
||||
{
|
||||
var path = NormalizePath(currentPath);
|
||||
return path switch
|
||||
{
|
||||
"/" or "/admin" or "/admin/dashboard" or "/dashboard" => "대시보드",
|
||||
"/admin/inquiries" => "문의 관리",
|
||||
"/admin/clients" => "고객 관리",
|
||||
"/admin/blog" => "블로그 관리",
|
||||
"/admin/faqs" => "FAQ 관리",
|
||||
"/admin/announcements" => "공지사항",
|
||||
"/admin/tax-profiles" => "세무 프로필",
|
||||
"/admin/tax-filing-schedules" => "신고 일정",
|
||||
"/admin/contracts" => "계약 관리",
|
||||
"/admin/consulting-activities" => "상담 활동",
|
||||
"/admin/revenue-trackings" => "수익 추적",
|
||||
"/admin/common-codes" => "공통관리",
|
||||
"/admin/settings" => "설정",
|
||||
_ => "운영 화면"
|
||||
};
|
||||
}
|
||||
|
||||
private static string NormalizePath(string path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
return "/";
|
||||
|
||||
var normalized = path.Trim();
|
||||
if (!normalized.StartsWith('/'))
|
||||
normalized = "/" + normalized;
|
||||
|
||||
return normalized.TrimEnd('/') is "" ? "/" : normalized.TrimEnd('/');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user