132 lines
3.7 KiB
PHP
132 lines
3.7 KiB
PHP
<?php
|
|
include __DIR__ . '/../partials/sidebar_configuracion.php';
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Dashboard | Configuración</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
<link href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css" rel="stylesheet">
|
|
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
|
|
<script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>
|
|
|
|
<style>
|
|
body {
|
|
font-family: 'Segoe UI', sans-serif;
|
|
background-color: #f4f6f9;
|
|
}
|
|
.sidebar {
|
|
width: 220px;
|
|
height: 100vh;
|
|
background-color: #343a40;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
padding-top: 56px; /* Alineado con la altura de la navbar */
|
|
z-index: 1040; /* Asegura que esté por encima del contenido */
|
|
}
|
|
.sidebar .nav-link {
|
|
font-weight: bold;
|
|
color: white;
|
|
transition: all 0.3s ease;
|
|
}
|
|
.sidebar .nav-link:hover,
|
|
.sidebar .nav-link.active {
|
|
background-color: #495057;
|
|
color: #fff;
|
|
}
|
|
.content {
|
|
margin-top: 56px; /* Ajusta debajo de navbar */
|
|
padding: 40px 20px;
|
|
position: relative;
|
|
z-index: 1;
|
|
background-color: #f4f6f9; /* Asegura fondo uniforme */
|
|
transition: margin-left 0.3s ease;
|
|
}
|
|
.navbar {
|
|
position: fixed;
|
|
top: 0;
|
|
width: 100%;
|
|
z-index: 1050;
|
|
}
|
|
/* A partir de dispositivos medianos (>=768px), deja espacio lateral */
|
|
@media (min-width: 768px) {
|
|
.content {
|
|
margin-left: 250px; /* Ancho del sidebar */
|
|
}
|
|
}
|
|
|
|
/* En móviles, sin margen lateral */
|
|
@media (max-width: 767.98px) {
|
|
.content {
|
|
margin-left: 0;
|
|
}
|
|
.sidebar .nav-link {
|
|
font-weight: normal;
|
|
color: #343a40;
|
|
background-color: transparent;
|
|
}
|
|
.sidebar .nav-link:hover,
|
|
.sidebar .nav-link.active {
|
|
background-color: #e9ecef;
|
|
color: #212529;
|
|
}
|
|
}
|
|
.card { border-radius: 12px; }
|
|
table.dataTable thead th { background: #343a40; color: #fff; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="content">
|
|
<h4 class="mb-4">👥 Acceso de Usuarios</h4>
|
|
|
|
<div class="card p-3 shadow-sm">
|
|
<div class="table-responsive">
|
|
<table class="table table-striped" id="tabla-logins">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Nombre</th>
|
|
<th>Correo</th>
|
|
<th>IP</th>
|
|
<th>Fecha</th>
|
|
<th>Estatus</th>
|
|
<th>Detalles</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($bitacoras as $b): ?>
|
|
<tr>
|
|
<td><?= htmlspecialchars($b['id_usuario']) ?></td>
|
|
<td><?= htmlspecialchars($b['nombre']) ?></td>
|
|
<td><?= htmlspecialchars($b['email']) ?></td>
|
|
<td><?= htmlspecialchars($b['ip']) ?></td>
|
|
<td><?= $b['fecha']->format('Y-m-d H:i:s') ?></td>
|
|
<td>
|
|
<?= $b['exito'] == 1 ? 'Éxito' : 'Fallido' ?>
|
|
</td>
|
|
<td><?= htmlspecialchars($b['detalle']) ?></td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
$(document).ready(function () {
|
|
$('#tabla-logins').DataTable({
|
|
language: {
|
|
url: '//cdn.datatables.net/plug-ins/1.13.4/i18n/es-ES.json'
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|