v1.1.0: Полный редизайн фронтенда, усиление безопасности и обновление версии
This commit is contained in:
@@ -1,41 +1,73 @@
|
||||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="">GM-Relay Web</a>
|
||||
</div>
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
<div class="nav-header">
|
||||
<a class="nav-brand" href="">
|
||||
<span class="nav-brand-icon">🎲</span>
|
||||
<span class="nav-brand-text">GM-Relay</span>
|
||||
</a>
|
||||
<button class="nav-toggle" @onclick="ToggleMenu" aria-label="Навигационное меню">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<line x1="3" y1="6" x2="21" y2="6"/>
|
||||
<line x1="3" y1="12" x2="21" y2="12"/>
|
||||
<line x1="3" y1="18" x2="21" y2="18"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<input type="checkbox" title="Навигационное меню" class="navbar-toggler" />
|
||||
<nav class="nav-body @(isOpen ? "open" : "")">
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
<div class="nav-section">
|
||||
<NavLink class="nav-item" href="" Match="NavLinkMatch.All" @onclick="CloseMenu">
|
||||
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
|
||||
<polyline points="9 22 9 12 15 12 15 22"/>
|
||||
</svg>
|
||||
Панель управления
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
|
||||
<nav class="nav flex-column">
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Панель управления
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3 mt-auto">
|
||||
<div class="nav-link text-light">
|
||||
<span class="bi bi-person-fill" aria-hidden="true"></span> @context.User.Identity?.Name
|
||||
<div class="nav-footer">
|
||||
<div class="nav-user">
|
||||
<div class="nav-user-avatar">
|
||||
@(context.User.Identity?.Name?.Substring(0, 1).ToUpper() ?? "?")
|
||||
</div>
|
||||
<span class="nav-user-name">@context.User.Identity?.Name</span>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<form action="/auth/logout" method="post">
|
||||
<AntiforgeryToken />
|
||||
<button type="submit" class="nav-link btn btn-link text-light text-start w-100 p-0 shadow-none border-0">
|
||||
<span class="bi bi-box-arrow-right" aria-hidden="true"></span> Выйти
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</Authorized>
|
||||
<NotAuthorized>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="login">
|
||||
<span class="bi bi-person-badge-nav-menu" aria-hidden="true"></span> Войти
|
||||
</NavLink>
|
||||
</div>
|
||||
</NotAuthorized>
|
||||
</AuthorizeView>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<form action="/auth/logout" method="post">
|
||||
<AntiforgeryToken />
|
||||
<button type="submit" class="nav-logout-btn">
|
||||
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1-2 2h4"/>
|
||||
<polyline points="16 17 21 12 16 7"/>
|
||||
<line x1="21" y1="12" x2="9" y2="12"/>
|
||||
</svg>
|
||||
Выйти
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="nav-version">v1.1.0</div>
|
||||
</div>
|
||||
</Authorized>
|
||||
<NotAuthorized>
|
||||
<div class="nav-section">
|
||||
<NavLink class="nav-item" href="login" @onclick="CloseMenu">
|
||||
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"/>
|
||||
<polyline points="10 17 15 12 10 7"/>
|
||||
<line x1="15" y1="12" x2="3" y2="12"/>
|
||||
</svg>
|
||||
Войти
|
||||
</NavLink>
|
||||
</div>
|
||||
</NotAuthorized>
|
||||
</AuthorizeView>
|
||||
</nav>
|
||||
|
||||
@code {
|
||||
private bool isOpen;
|
||||
|
||||
private void ToggleMenu() => isOpen = !isOpen;
|
||||
private void CloseMenu() => isOpen = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user