Files
foundation_system/foundation_system/Views/Permiso/Index.cshtml
2025-12-31 13:36:41 -06:00

96 lines
4.2 KiB
Plaintext

@model IEnumerable<foundation_system.Models.Permiso>
@{
ViewData["Title"] = "Gestión de Menú y Permisos";
}
<div class="container-fluid">
<div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="h3 mb-0 text-gray-800"><i class="bi bi-list-ul me-2"></i>@ViewData["Title"]</h2>
<a asp-action="Create" class="btn btn-primary">
<i class="bi bi-plus-lg"></i> Nueva Opción
</a>
</div>
@if (TempData["ErrorMessage"] != null)
{
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<i class="bi bi-exclamation-triangle-fill me-2"></i> @TempData["ErrorMessage"]
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
}
<div class="card shadow mb-4">
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle">
<thead class="table-light">
<tr>
<th>Módulo</th>
<th>Orden</th>
<th>Nombre</th>
<th>Ruta (URL)</th>
<th>Icono</th>
<th class="text-center">Es Menú</th>
<th class="text-center">Acciones</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
<span class="badge bg-info text-dark">
<i class="bi @item.Modulo?.Icono me-1"></i>
@(item.Modulo?.Nombre ?? "Sin Módulo")
</span>
</td>
<td><span class="badge bg-secondary">@item.Orden</span></td>
<td class="fw-bold">@item.Nombre</td>
<td class="font-monospace small">@item.Url</td>
<td><i class="bi @item.Icono me-2"></i>@item.Icono</td>
<td class="text-center">
@if (item.EsMenu)
{
<span class="text-success"><i class="bi bi-check-circle-fill"></i></span>
}
else
{
<span class="text-muted"><i class="bi bi-x-circle"></i></span>
}
</td>
<td class="text-center">
<div class="btn-group btn-group-sm">
<a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-outline-primary" title="Editar">
<i class="bi bi-pencil"></i>
</a>
<button type="button" class="btn btn-outline-danger" title="Eliminar"
onclick="confirmDelete(@item.Id, '@item.Nombre')">
<i class="bi bi-trash"></i>
</button>
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
</div>
<form id="deleteForm" asp-action="Delete" method="post" style="display:none;">
<input type="hidden" name="id" id="deleteId" />
</form>
@section Scripts {
<script>
function confirmDelete(id, name) {
if (confirm(`¿Está seguro de que desea eliminar "${name}"?`)) {
document.getElementById('deleteId').value = id;
document.getElementById('deleteForm').submit();
}
}
</script>
}