<!-- Source: /wwwroot/sneat/html/layouts-fluid.html -->
@* Custom layouts can be created and the project's layout can be changed under ~/Views/_ViewStart.cshtml *@
<!doctype html>
<html lang="en"
class="light-style layout-menu-fixed layout-wide"
dir="ltr"
data-theme="theme-default"
data-assets-path="/sneat/assets/"
data-template="vertical-menu-template-free"
data-style="light">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
<title>@ViewData["Title"] | @AppSettings.Title</title> @* titles set in the views will be written here by ViewData["Title"] *@
<meta name="description" content="" />
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/sneat/assets/img/favicon/favicon.ico" />
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet" />
<link rel="stylesheet" href="/sneat/assets/vendor/fonts/boxicons.css" />
<!-- Core CSS -->
<link rel="stylesheet" href="/sneat/assets/vendor/css/core.css" class="template-customizer-core-css" />
<link rel="stylesheet" href="/sneat/assets/vendor/css/theme-default.css" class="template-customizer-theme-css" />
<link rel="stylesheet" href="/sneat/assets/css/demo.css" />
<!-- Vendors CSS -->
<link rel="stylesheet" href="/sneat/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.css" />
<!-- Page CSS -->
<!-- Helpers -->
<script src="/sneat/assets/vendor/js/helpers.js"></script>
<!--! Template customizer & Theme config files MUST be included after core stylesheets and helpers.js in the <head> section -->
<!--? Config: Mandatory theme config file contain global vars & default theme options, Set your preferred theme option in this file. -->
<script src="/sneat/assets/js/config.js"></script>
</head>
<body>
<!-- Layout wrapper -->
<div class="layout-wrapper layout-content-navbar">
<div class="layout-container">
<!-- Menu -->
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
<div class="app-brand demo">
<a asp-area="" asp-action="Index" asp-controller="Home" class="app-brand-link">
<i class="menu-icon tf-icons bx bxs-bank"></i>
@*
we want to write "RMS" in the title of the HTML document:
we can reach the AppSettings class properties directly and use their values
*@
<span class="app-brand-text demo menu-text fw-bold ms-2">@AppSettings.Title</span>
</a>
<a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto d-block d-xl-none">
<i class="bx bx-chevron-left bx-sm d-flex align-items-center justify-content-center"></i>
</a>
</div>
<div class="menu-inner-shadow"></div>
<ul class="menu-inner py-1">
<li class="menu-header small text-uppercase">
<span class="menu-header-text">Menu</span>
</li>
@*
application user's authentication cookie can be checked by the User object's Identity property reference's IsAuthenticated boolean property
*@
@if (User.Identity.IsAuthenticated)
{
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon tf-icons bx bx-menu"></i>
<div class="text-truncate" data-i18n="Account">Account</div>
</a>
<ul class="menu-sub">
@*
application user's role name can be checked by the User object's IsInRole method, this method also checks whether the application user
is authenticated or not, show "Roles" link for only application users with role "Admin"
*@
@if (User.IsInRole("Admin"))
{
<li class="menu-item">
<a asp-area="" asp-action="Index" asp-controller="Roles" class="menu-link">
<div class="text-truncate" data-i18n="Roles">Roles</div>
</a>
</li>
}
@* show "Users" link for application users with roles "Admin" or "User" *@
<li class="menu-item">
<a asp-area="" asp-action="Index" asp-controller="Users" class="menu-link">
<div class="text-truncate" data-i18n="Users">Users</div>
</a>
</li>
</ul>
</li>
@* For favorites management in session: *@
@* show "Favorites" link for application users with roles "Admin" or "User" *@
<li class="menu-item">
<a asp-area="" asp-action="Get" asp-controller="Favorites" class="menu-link">
<i class="menu-icon tf-icons bx bx-cart"></i>
<div class="text-truncate" data-i18n="Favorites">Favorites</div>
</a>
</li>
}
@* show "Resources" link to everyone *@
<li class="menu-item">
<a asp-area="" asp-action="Index" asp-controller="Resources" class="menu-link">
<i class="menu-icon tf-icons bx bx-library"></i>
<div class="text-truncate" data-i18n="Resources">Resources</div>
</a>
</li>
</ul>
</aside>
<!-- / Menu -->
<!-- Layout container -->
<div class="layout-page">
<!-- Navbar -->
<nav class="layout-navbar container-fluid navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme"
id="layout-navbar">
<div class="layout-menu-toggle navbar-nav align-items-xl-center me-4 me-xl-0 d-xl-none">
<a class="nav-item nav-link px-0 me-xl-6" href="javascript:void(0)">
<i class="bx bx-menu bx-md"></i>
</a>
</div>
@* displaying the links about account on the right: *@
<div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse">
<ul class="navbar-nav flex-row align-items-center ms-auto">
<!-- User -->
@*
application user's authentication cookie can be checked by the User object's Identity property reference's IsAuthenticated boolean property,
application user's user name in the authentication cookie can be used by User object's Identity property reference's Name string property
*@
@if (User.Identity.IsAuthenticated) // if application user has an authentication cookie, thus logged in
{
<li class="nav-item">
<a href="#" class="nav-link">
<i class="bx bx-user bx-md me-1"></i><span>@User.Identity.Name</span> @* displaying the user name *@
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-action="Logout" asp-controller="Users" class="nav-link ps-3">
<i class="bx bx-log-out bx-md me-1"></i><span>Logout</span>
</a>
</li>
}
else // if application user doesn't have an authentication cookie, thus not logged in
{
<li class="nav-item">
<a asp-area="" asp-action="Register" asp-controller="Users" class="nav-link">
<i class="bx bx-user-plus bx-md me-1"></i><span>Register</span>
</a>
</li>
<li class="nav-item">
<a asp-area="" asp-action="Login" asp-controller="Users" class="nav-link ps-3">
<i class="bx bx-log-in bx-md me-1"></i><span>Login</span>
</a>
</li>
}
<!--/ User -->
</ul>
</div>
</nav>
<!-- / Navbar -->
<!-- Content wrapper -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-fluid flex-grow-1 container-p-y">
@RenderBody() @* views that we create are rendered here *@
</div>
<!-- / Content -->
<!-- Footer -->
<footer class="content-footer footer bg-footer-theme">
<div class="container-fluid">
<div class="footer-container d-flex align-items-center justify-content-between py-4 flex-md-row flex-column">
<div class="text-body">
<a asp-area="" asp-controller="Home" asp-action="Privacy" class="footer-link">Privacy</a>
|
<a href="/sneat/html/index.html" target="_blank" class="footer-link">Sneat</a>
</div>
<div class="d-none d-lg-inline-block">
<a href="https://themeselection.com/" target="_blank">ThemeSelection</a>
</div>
</div>
</div>
</footer>
<!-- / Footer -->
<div class="content-backdrop fade"></div>
</div>
<!-- Content wrapper -->
</div>
<!-- / Layout page -->
</div>
<!-- Overlay -->
<div class="layout-overlay layout-menu-toggle"></div>
</div>
<!-- / Layout wrapper -->
<!-- Core JS -->
<!-- build:js assets/vendor/js/core.js -->
<script src="/sneat/assets/vendor/libs/jquery/jquery.js"></script>
<script src="/sneat/assets/vendor/libs/popper/popper.js"></script>
<script src="/sneat/assets/vendor/js/bootstrap.js"></script>
<script src="/sneat/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js"></script>
<script src="/sneat/assets/vendor/js/menu.js"></script>
<!-- endbuild -->
<!-- Vendors JS -->
<!-- Main JS -->
<script src="/sneat/assets/js/main.js"></script>
<!-- Page JS -->
<!-- Place this tag before closing body tag for github widget button. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
$(function () {
$("#layout-menu ul.menu-inner li.menu-item").each(function () {
if ($(this).children("a.menu-link")[0].pathname.split("/")[1] == window.location.pathname.split("/")[1]) {
$(this).addClass("active");
$(this).parent("ul.menu-sub").parent("li.menu-item").addClass("open");
} else {
$(this).removeClass("active");
}
});
});
</script>
@await RenderSectionAsync("Scripts", required: false) @* Renders the Scripts sections of the views if written.
If required is set to true, then all views must have Scripts sections. *@
</body>
</html>