1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2024-10-17 03:42:50 +02:00
Minecraft-Phantom-Panel/Web/Phantom.Web/Layout/NavMenu.razor
2024-04-07 21:21:05 +02:00

64 lines
1.9 KiB
Plaintext

@using Phantom.Web.Services.Authentication
@using Phantom.Web.Services
@using Phantom.Common.Data.Web.Users
@inject ApplicationProperties ApplicationProperties
<div class="navbar navbar-dark">
<div class="container-fluid">
<div class="pt-1 pb-2">
<a class="navbar-brand" href="">Phantom Panel</a>
<small class="navbar-text">Version&nbsp;@ApplicationProperties.Version</small>
</div>
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
<div class="navbar-menu @NavMenuCssClass" @onclick="ToggleNavMenu">
<nav>
<AuthorizeView>
<NotAuthorized>
<NavMenuItem Label="Login" Icon="account-login" Href="login" />
</NotAuthorized>
<Authorized>
@{ var permissions = context.GetPermissions(); }
<NavMenuItem Label="Home" Icon="home" Match="NavLinkMatch.All" />
@if (permissions.Check(Permission.ViewInstances)) {
<NavMenuItem Label="Instances" Icon="folder" Href="instances" />
}
<NavMenuItem Label="Agents" Icon="cloud" Href="agents" />
@if (permissions.Check(Permission.ViewUsers)) {
<NavMenuItem Label="Users" Icon="person" Href="users" />
}
@if (permissions.Check(Permission.ViewAudit)) {
<NavMenuItem Label="Audit Log" Icon="clipboard" Href="audit" />
}
@if (permissions.Check(Permission.ViewEvents)) {
<NavMenuItem Label="Event Log" Icon="project" Href="events" />
}
<NavMenuItem Label="Logout" Icon="account-logout" Href="logout" />
</Authorized>
</AuthorizeView>
</nav>
</div>
@code {
private bool collapseNavMenu = true;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu() {
collapseNavMenu = !collapseNavMenu;
}
}