97 lines
3.1 KiB
Plaintext
97 lines
3.1 KiB
Plaintext
@using Koogle.Web.Store.ClubState
|
|
@inherits FluxorComponent
|
|
|
|
@inject IState<AuthState> AuthState
|
|
@inject IState<ClubState> ClubState
|
|
@inject NavigationManager NavigationManager
|
|
|
|
<MudNavMenu>
|
|
@* Dashboard - visible to all authenticated users *@
|
|
<MudNavLink Href="/"
|
|
Match="NavLinkMatch.All"
|
|
Icon="@Icons.Material.Filled.Dashboard">
|
|
Dashboard
|
|
</MudNavLink>
|
|
|
|
@if (AuthState.Value.IsAuthenticated && HasSelectedClub)
|
|
{
|
|
@* Club-specific navigation - requires selected club *@
|
|
<MudNavLink Href="/days"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.CalendarMonth">
|
|
Spieltage
|
|
</MudNavLink>
|
|
|
|
|
|
|
|
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin)
|
|
{
|
|
<MudNavGroup Title="Stammdaten"
|
|
Icon="@Icons.Material.Filled.Settings"
|
|
Expanded="false">
|
|
<MudNavLink Href="/persons"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.Groups">
|
|
Personen
|
|
</MudNavLink>
|
|
|
|
<MudNavLink Href="/expenses"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.Receipt">
|
|
Strafen
|
|
</MudNavLink>
|
|
|
|
<MudNavLink Href="/expensetriggers"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.FlashOn">
|
|
Auslöser
|
|
</MudNavLink>
|
|
</MudNavGroup>
|
|
}
|
|
}
|
|
|
|
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin)
|
|
{
|
|
<MudDivider Class="my-2" />
|
|
|
|
<MudNavGroup Title="Administration"
|
|
Icon="@Icons.Material.Filled.AdminPanelSettings"
|
|
Expanded="false">
|
|
@if (AuthState.Value.IsSuperAdmin)
|
|
{
|
|
<MudNavLink Href="/admin/clubs"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.Business">
|
|
Vereine
|
|
</MudNavLink>
|
|
<MudNavLink Href="/admin/users"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.People">
|
|
Benutzer
|
|
</MudNavLink>
|
|
<MudNavLink Href="/admin/triggers"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.FlashOn">
|
|
Auslöser
|
|
</MudNavLink>
|
|
}
|
|
</MudNavGroup>
|
|
}
|
|
|
|
<MudDivider Class="my-2" />
|
|
|
|
@* Profile - visible to all authenticated users *@
|
|
@if (AuthState.Value.IsAuthenticated)
|
|
{
|
|
<MudNavLink Href="/account/profile"
|
|
Match="NavLinkMatch.Prefix"
|
|
Icon="@Icons.Material.Filled.Person">
|
|
Profil
|
|
</MudNavLink>
|
|
}
|
|
</MudNavMenu>
|
|
|
|
@code {
|
|
private bool HasSelectedClub => AuthState.Value.CurrentClub != null;
|
|
}
|