Add finalized navigation menu (F3)
- Dashboard link (all authenticated users) - Spieltage, Personen (club-specific, require selected club) - Stammdaten with Kostenvorlagen (ClubEditor+) - Administration section with Vereine/Benutzer (SuperAdmin) - Profile link for authenticated users 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
579db4640b
commit
245940b40e
|
|
@ -1,23 +1,54 @@
|
|||
@inherits FluxorComponent
|
||||
@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>
|
||||
|
||||
<MudNavLink Href="/persons"
|
||||
Match="NavLinkMatch.Prefix"
|
||||
Icon="@Icons.Material.Filled.Groups">
|
||||
Personen
|
||||
</MudNavLink>
|
||||
|
||||
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin)
|
||||
{
|
||||
<MudNavGroup Title="Stammdaten"
|
||||
Icon="@Icons.Material.Filled.Settings"
|
||||
Expanded="false">
|
||||
<MudNavLink Href="/expenses"
|
||||
Match="NavLinkMatch.Prefix"
|
||||
Icon="@Icons.Material.Filled.Receipt">
|
||||
Kostenvorlagen
|
||||
</MudNavLink>
|
||||
</MudNavGroup>
|
||||
}
|
||||
}
|
||||
|
||||
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin)
|
||||
{
|
||||
@* // Tage und Auswertungen des ausgewählten Vereins *@
|
||||
|
||||
|
||||
<MudDivider Class="my-2" />
|
||||
|
||||
<MudNavGroup Title="Administration"
|
||||
Icon="@Icons.Material.Filled.AdminPanelSettings"
|
||||
Expanded="false">
|
||||
|
||||
@* // Stammdaten des ausgewählten Vereins *@
|
||||
|
||||
@* // mandantenübergreifende Verwaltung *@
|
||||
@if (AuthState.Value.IsSuperAdmin)
|
||||
{
|
||||
<MudNavLink Href="/admin/clubs"
|
||||
|
|
@ -31,11 +62,23 @@
|
|||
Benutzer
|
||||
</MudNavLink>
|
||||
}
|
||||
|
||||
</MudNavGroup>
|
||||
}
|
||||
|
||||
<MudDivider Class="my-2" />
|
||||
|
||||
@* Profile - visible to all authenticated users *@
|
||||
@if (AuthState.Value.IsAuthenticated)
|
||||
{
|
||||
<MudNavLink Href="/profile"
|
||||
Match="NavLinkMatch.Prefix"
|
||||
Icon="@Icons.Material.Filled.Person">
|
||||
Profil
|
||||
</MudNavLink>
|
||||
}
|
||||
</MudNavMenu>
|
||||
|
||||
@code {
|
||||
|
||||
private bool HasSelectedClub => ClubState.Value.SelectedClub != null ||
|
||||
AuthState.Value.CurrentUser?.ClubMemberships?.Any(c => c.IsDefault) == true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue