_Layout.cshtml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. @using Admin.Pages.Shared.Layout
  2. @inject ILayoutDataProvider LayoutDataProvider
  3. @{
  4. var layoutViewModel = await LayoutDataProvider.CreateAsync(Context);
  5. }
  6. <!DOCTYPE html>
  7. <html lang="ko">
  8. <head>
  9. <meta charset="utf-8" />
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  11. <title>@ViewData["Title"] - Admin</title>
  12. <meta name="description" content="bitforum.io 관리자 페이지입니다." />
  13. <meta name="author" content="https://playr.co.kr" />
  14. <meta name="copyright" content="playr" />
  15. <meta name="referrer" content="no-referrer">
  16. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  17. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  18. <meta http-equiv="Content-Language" content="ko" />
  19. <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  20. <meta http-equiv="Pragma" content="no-cache" />
  21. <meta http-equiv="Expires" content="0" />
  22. <meta name="robots" content="noindex, nofollow" />
  23. <script type="importmap"></script>
  24. <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
  25. <link rel="stylesheet" href="~/lib/bootstrap-icons/font/bootstrap-icons.min.css" />
  26. <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
  27. <link rel="stylesheet" href="~/css/admin.css" asp-append-version="true" />
  28. @await RenderSectionAsync("Styles", required: false)
  29. </head>
  30. <body>
  31. <aside id="aside">
  32. <ul class="nav flex-column">
  33. @if (layoutViewModel is not null)
  34. {
  35. foreach (var menu in layoutViewModel.Menus)
  36. {
  37. <partial name="_MenuItem" model="menu" />
  38. }
  39. }
  40. </ul>
  41. <footer>ⓒ <a href="https://playr.co.kr" target="_blank" rel="external">PLAYR</a>. All Rights Reserved</footer>
  42. </aside>
  43. <main id="main">
  44. <header id="header">
  45. <div class="row justify-content-between align-items-center g-0">
  46. <div class="col">
  47. <button type="button" id="btnAsideToggle" class="btn btn-light">
  48. <i class="bi bi-arrow-left"></i>
  49. </button>
  50. </div>
  51. <div class="col text-center">
  52. <a href="/" ref="home" target="_self" class="logo">
  53. <strong>
  54. <img src="/images/favicon.ico" /> @(layoutViewModel?.AppSettings?.App.Name ?? string.Empty)
  55. </strong>
  56. </a>
  57. </div>
  58. <div class="col text-end">
  59. <div class="dropdown profile">
  60. <button class="btn btn-light dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
  61. <span class="profile-text">@layoutViewModel?.UserName</span>
  62. <i class="bi bi-person-fill profile-icon"></i>
  63. </button>
  64. <ul class="dropdown-menu">
  65. <li><a href="/Identity/Account/Manage" class="dropdown-item">내 정보</a></li>
  66. <li>
  67. <form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="~/" method="post">
  68. <button type="submit" class="dropdown-item">로그아웃</button>
  69. </form>
  70. </li>
  71. </ul>
  72. </div>
  73. </div>
  74. </div>
  75. </header>
  76. <div class="pt-4">
  77. @RenderBody()
  78. </div>
  79. </main>
  80. <script src="~/lib/jquery/dist/jquery.min.js"></script>
  81. <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
  82. <script src="~/lib/jquery-validation/dist/additional-methods.min.js"></script>
  83. <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
  84. <script src="~/js/func.js" asp-append-version="true"></script>
  85. <script src="~/js/site.js" asp-append-version="true"></script>
  86. @await RenderSectionAsync("Scripts", required: false)
  87. </body>
  88. </html>