97 lines
4.7 KiB
Plaintext
97 lines
4.7 KiB
Plaintext
<div class="nav-container onboarding-nav-menu">
|
|
@* --- Brand / Logo Section --- *@
|
|
<div class="nav-header">
|
|
<div class="logo-wrapper">
|
|
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" OnClick="OnToggleDrawer" Class="drawer-toggle-btn mr-1" />
|
|
<MudIcon Icon="@Icons.Material.Filled.AccessTime" Class="logo-icon" />
|
|
<span class="brand-text">Timetracker</span>
|
|
</div>
|
|
</div>
|
|
|
|
@* --- Navigation Links --- *@
|
|
<div class="nav-content">
|
|
<MudNavMenu Class="custom-nav-menu">
|
|
<MudTooltip Text="Wochenübersicht" Placement="Placement.Right">
|
|
<MudNavLink Href="" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.CalendarMonth" Class="custom-nav-link">Wochenübersicht</MudNavLink>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Monatsübersicht" Placement="Placement.Right">
|
|
<MudNavLink Href="month" Icon="@Icons.Material.Filled.CalendarViewMonth" Class="custom-nav-link">Monatsübersicht</MudNavLink>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Statistiken" Placement="Placement.Right">
|
|
<MudNavLink Href="stats" Icon="@Icons.Material.Filled.BarChart" Class="custom-nav-link">Statistiken</MudNavLink>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Feiertage" Placement="Placement.Right">
|
|
<MudNavLink Href="feiertage" Icon="@Icons.Material.Filled.Celebration" Class="custom-nav-link">Feiertage</MudNavLink>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Urlaubs-Maximizer" Placement="Placement.Right">
|
|
<MudNavLink Href="urlaub-maximizer" Icon="@Icons.Material.Filled.AutoAwesome" Class="custom-nav-link">Urlaubs-Maximizer</MudNavLink>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Einstellungen" Placement="Placement.Right">
|
|
<MudNavLink Href="settings" Icon="@Icons.Material.Filled.Settings" Class="custom-nav-link">Einstellungen</MudNavLink>
|
|
</MudTooltip>
|
|
|
|
<AuthorizeView Policy="AdminOnly">
|
|
<Authorized>
|
|
<div class="admin-divider-container">
|
|
<span class="admin-divider-text">Admin</span>
|
|
<hr class="admin-divider-line" />
|
|
</div>
|
|
<MudTooltip Text="Benutzerverwaltung" Placement="Placement.Right">
|
|
<MudNavLink Href="admin/users" Icon="@Icons.Material.Filled.AdminPanelSettings" Class="custom-nav-link admin-link">
|
|
Benutzerverwaltung
|
|
</MudNavLink>
|
|
</MudTooltip>
|
|
</Authorized>
|
|
</AuthorizeView>
|
|
</MudNavMenu>
|
|
</div>
|
|
|
|
@* --- Footer (User Profile & Action Info) --- *@
|
|
<div class="nav-footer">
|
|
<AuthorizeView>
|
|
<Authorized>
|
|
<div class="user-profile-card">
|
|
<div class="avatar-container">
|
|
<MudAvatar Class="user-avatar">
|
|
@GetInitials(context.User.Identity?.Name)
|
|
</MudAvatar>
|
|
<span class="status-dot"></span>
|
|
</div>
|
|
<div class="user-info">
|
|
<span class="user-name">@context.User.Identity?.Name</span>
|
|
<span class="user-status">Online</span>
|
|
</div>
|
|
</div>
|
|
</Authorized>
|
|
</AuthorizeView>
|
|
|
|
<MudNavMenu Class="footer-nav-menu">
|
|
<AuthorizeView>
|
|
<Authorized>
|
|
<MudTooltip Text="Abmelden" Placement="Placement.Right">
|
|
<MudNavLink Href="/auth/logout" Icon="@Icons.Material.Filled.Logout" Class="custom-nav-link logout-link">Abmelden</MudNavLink>
|
|
</MudTooltip>
|
|
</Authorized>
|
|
</AuthorizeView>
|
|
<MudTooltip Text="Changelog anzeigen" Placement="Placement.Right">
|
|
<MudNavLink Href="/changelog" Icon="@Icons.Material.Filled.NewReleases" Class="custom-nav-link version-link">
|
|
<span class="version-text">Version 1.4</span>
|
|
</MudNavLink>
|
|
</MudTooltip>
|
|
</MudNavMenu>
|
|
</div>
|
|
</div>
|
|
|
|
@code {
|
|
[Parameter] public EventCallback OnToggleDrawer { get; set; }
|
|
|
|
private string GetInitials(string? name)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(name))
|
|
return "U";
|
|
var parts = name.Split(' ', StringSplitOptions.RemoveEmptyEntries);
|
|
if (parts.Length == 1)
|
|
return parts[0][..Math.Min(2, parts[0].Length)].ToUpper();
|
|
return $"{parts[0][0]}{parts[1][0]}".ToUpper();
|
|
}
|
|
} |