95 lines
3.6 KiB
Plaintext
95 lines
3.6 KiB
Plaintext
@using Microsoft.AspNetCore.Authorization
|
|
@using Microsoft.AspNetCore.Identity
|
|
@inject SignInManager<ApplicationUser> SignInManager
|
|
@inject UserManager<ApplicationUser> UserManager
|
|
|
|
<nav class="sidebar">
|
|
<div class="sidebar-header d-flex align-items-center justify-content-between mb-4 px-3">
|
|
<a class="text-decoration-none" asp-controller="Home" asp-action="Index">
|
|
<span class="h5 fw-bold text-dark">VitaAsistente</span>
|
|
</a>
|
|
<button id="sidebarToggle" class="btn btn-sm p-0 ms-auto d-md-none" aria-label="Toggle sidebar">
|
|
<i class="bi bi-list"></i>
|
|
</button>
|
|
</div>
|
|
|
|
@if (SignInManager.IsSignedIn(User))
|
|
{
|
|
<div class="sidebar-user-info mb-4 px-3 pb-2 border-bottom d-flex align-items-center">
|
|
<div class="flex-grow-1 text-truncate">
|
|
<small class="text-muted">Hola,</small>
|
|
<span class="d-block small fw-medium" title="@User.Identity?.Name ?? "Usuario"">@User.Identity?.Name ?? "Usuario"</span>
|
|
</div>
|
|
</div>
|
|
|
|
@if (User.IsInRole("Admin"))
|
|
{
|
|
<div class="sidebar-section pb-2 px-3">
|
|
<h4 class="section-title mb-2">Administración</h4>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item">
|
|
<a class="nav-link" asp-controller="Usuarios" asp-action="Index">
|
|
<span class="me-2">👥</span> Gestión de Usuarios
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" asp-controller="Roles" asp-action="Index">
|
|
<span class="me-2">📋</span> Gestión de Roles
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
}
|
|
|
|
@if (User.IsInRole("Admin") || User.IsInRole("Usuario"))
|
|
{
|
|
<div class="sidebar-section pb-2 px-3">
|
|
<h4 class="section-title mb-2">Módulos Principales</h4>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item">
|
|
<a class="nav-link" asp-controller="Home" asp-action="Index">
|
|
<span class="me-2">🏠</span> Dashboard
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<div class="p-4 text-center">
|
|
<div class="mb-3">
|
|
<i class="bi bi-person-circle" style="font-size: 2.5rem;"></i>
|
|
</div>
|
|
<a href="/" class="btn btn-sm btn-outline-primary">Volver al inicio</a>
|
|
</div>
|
|
}
|
|
|
|
<form asp-controller="Account" asp-action="Logout" method="post" class="sidebar-footer p-3 border-top">
|
|
@Html.AntiForgeryToken()
|
|
@if (SignInManager.IsSignedIn(User))
|
|
{
|
|
<button type="submit" class="btn btn-sm btn-outline-danger w-100">Cerrar Sesión</button>
|
|
}
|
|
</form>
|
|
</nav>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const sidebar = document.querySelector('.sidebar');
|
|
const toggleButton = document.getElementById('sidebarToggle');
|
|
|
|
if (toggleButton && sidebar) {
|
|
toggleButton.addEventListener('click', function() {
|
|
sidebar.classList.toggle('collapsed');
|
|
// Update button icon based on state
|
|
const icon = toggleButton.querySelector('i');
|
|
if (sidebar.classList.contains('collapsed')) {
|
|
icon.className = 'bi bi-arrow-bar-right';
|
|
} else {
|
|
icon.className = 'bi bi-list';
|
|
}
|
|
});
|
|
}
|
|
});
|
|
</script> |