Files
IntegryControlPanel_Blazor/IntegryControlPanel/IntegryControlPanel.Client/Layout/NavMenu.razor

59 lines
2.8 KiB
Plaintext

@implements IDisposable
@inject NavigationManager NavigationManager
<MudNavMenu>
<AuthorizeView>
<Authorized>
<MudNavLink Href="dashboard" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Dashboard">Dashboard</MudNavLink>
<MudDivider Class="my-2" />
<MudNavGroup Text="Gestione" Icon="@Icons.Material.Filled.Business" Expanded="false">
<MudNavLink Href="servers" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Computer">Server</MudNavLink>
<MudNavLink Href="clients" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.People">Client</MudNavLink>
<MudNavLink Href="services" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Settings">Servizi</MudNavLink>
</MudNavGroup>
<MudNavGroup Text="Esempi" Icon="@Icons.Material.Filled.Science" Expanded="false">
<MudNavLink Href="counter" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Add">Counter</MudNavLink>
<MudNavLink Href="weather" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.List">Weather</MudNavLink>
<MudNavLink Href="auth" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Lock">Auth Required</MudNavLink>
</MudNavGroup>
<MudDivider Class="my-2" />
<MudNavGroup Text="Account" Icon="@Icons.Material.Filled.Person" Expanded="false">
<MudNavLink Href="Account/Manage" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Person">Profilo (@context.User.Identity?.Name)</MudNavLink>
<MudNavLink Href="@($"Account/Logout?returnUrl={Uri.EscapeDataString(currentUrl ?? "/")}")"
Icon="@Icons.Material.Filled.Logout"
Style="color: var(--mud-palette-error);">
Logout
</MudNavLink>
</MudNavGroup>
</Authorized>
<NotAuthorized>
<MudNavLink Href="Account/Login" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.Login">Login</MudNavLink>
<MudNavLink Href="Account/Register" Match="NavLinkMatch.Prefix" Icon="@Icons.Material.Filled.PersonAdd">Register</MudNavLink>
</NotAuthorized>
</AuthorizeView>
</MudNavMenu>
@code {
private string? currentUrl;
protected override void OnInitialized()
{
currentUrl = NavigationManager.ToBaseRelativePath(NavigationManager.Uri);
NavigationManager.LocationChanged += OnLocationChanged;
}
private void OnLocationChanged(object? sender, LocationChangedEventArgs e)
{
currentUrl = NavigationManager.ToBaseRelativePath(e.Location);
StateHasChanged();
}
public void Dispose()
{
NavigationManager.LocationChanged -= OnLocationChanged;
}
}