85 lines
3.1 KiB
PHP
Executable File
85 lines
3.1 KiB
PHP
Executable File
<?php
|
|
require_once __DIR__ . '/../includes/session_check.php';
|
|
require_once __DIR__ . '/../includes/db.php';
|
|
|
|
// Only admins can access this page
|
|
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
|
|
header("Location: ../index.php");
|
|
exit;
|
|
}
|
|
|
|
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
|
|
$limit = 25;
|
|
$offset = ($page - 1) * $limit;
|
|
|
|
// Get total number of records
|
|
$total_stmt = $pdo->query("SELECT COUNT(*) FROM activity_log");
|
|
$total_records = $total_stmt->fetchColumn();
|
|
$total_pages = ceil($total_records / $limit);
|
|
|
|
// Fetch activity logs
|
|
$stmt = $pdo->prepare("SELECT * FROM activity_log ORDER BY timestamp DESC LIMIT :limit OFFSET :offset");
|
|
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
|
|
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
|
|
$stmt->execute();
|
|
$logs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
require_once __DIR__ . '/../templates/header.php';
|
|
?>
|
|
|
|
<div class="container-fluid">
|
|
<h1 class="mt-4">Registro de Actividad</h1>
|
|
|
|
<div class="card mb-4">
|
|
<div class="card-body">
|
|
<table class="table table-striped table-bordered">
|
|
<thead class="thead-dark">
|
|
<tr>
|
|
<th>Usuario</th>
|
|
<th>Acción</th>
|
|
<th>Detalles</th>
|
|
<th>Fecha y Hora</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php if (empty($logs)): ?>
|
|
<tr>
|
|
<td colspan="4" class="text-center">No hay registros de actividad.</td>
|
|
</tr>
|
|
<?php else: ?>
|
|
<?php foreach ($logs as $log): ?>
|
|
<tr>
|
|
<td><?php echo htmlspecialchars($log['username'] ?? 'N/A'); ?></td>
|
|
<td><?php echo htmlspecialchars($log['action']); ?></td>
|
|
<td><?php echo htmlspecialchars($log['details'] ?? 'N/A'); ?></td>
|
|
<td><?php echo htmlspecialchars(date('d/m/Y H:i:s', strtotime($log['timestamp']))); ?></td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Pagination -->
|
|
<nav aria-label="Page navigation">
|
|
<ul class="pagination justify-content-center">
|
|
<?php if ($page > 1): ?>
|
|
<li class="page-item"><a class="page-link" href="?page=<?php echo $page - 1; ?>">Anterior</a></li>
|
|
<?php endif; ?>
|
|
|
|
<?php for ($i = 1; $i <= $total_pages; $i++): ?>
|
|
<li class="page-item <?php echo ($i == $page) ? 'active' : ''; ?>">
|
|
<a class="page-link" href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
|
|
</li>
|
|
<?php endfor; ?>
|
|
|
|
<?php if ($page < $total_pages): ?>
|
|
<li class="page-item"><a class="page-link" href="?page=<?php echo $page + 1; ?>">Siguiente</a></li>
|
|
<?php endif; ?>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
|
|
<?php require_once __DIR__ . '/../templates/footer.php'; ?>
|