34619-vm/admin/index.php
2025-10-03 13:03:26 +00:00

138 lines
5.7 KiB
PHP

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
require_once __DIR__ . '/../db/config.php';
// Fetch stats
$pdo = db();
$total_surveys = $pdo->query("SELECT COUNT(*) FROM surveys")->fetchColumn();
$total_responses = $pdo->query("SELECT COUNT(*) FROM responses")->fetchColumn();
$total_users = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn();
// Fetch recent surveys
$recent_surveys_stmt = $pdo->query("SELECT id, title, created_at FROM surveys ORDER BY created_at DESC LIMIT 5");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Dashboard - FormFlex Pro</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../assets/css/admin.css">
</head>
<body>
<header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
<a class="navbar-brand col-md-3 col-lg-2 me-0 px-3" href="#">FormFlex Pro</a>
<button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-nav">
<div class="nav-item text-nowrap">
<a class="nav-link px-3" href="logout.php">Sign out</a>
</div>
</div>
</header>
<div class="container-fluid">
<div class="row">
<nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-light sidebar collapse">
<div class="position-sticky pt-3">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.php">
Dashboard
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="surveys.php">
Surveys
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="users.php">
Users
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">
Settings
</a>
</li>
</ul>
</div>
</nav>
<main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">Dashboard</h1>
</div>
<div class="row">
<div class="col-md-4">
<div class="card text-white bg-primary mb-3">
<div class="card-header">Total Surveys</div>
<div class="card-body">
<h5 class="card-title"><?php echo $total_surveys; ?></h5>
<a href="surveys.php" class="text-white">View all surveys &rarr;</a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card text-white bg-success mb-3">
<div class="card-header">Total Responses</div>
<div class="card-body">
<h5 class="card-title"><?php echo $total_responses; ?></h5>
<p class="card-text">Across all surveys.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card text-white bg-info mb-3">
<div class="card-header">Registered Users</div>
<div class="card-body">
<h5 class="card-title"><?php echo $total_users; ?></h5>
<a href="users.php" class="text-white">View all users &rarr;</a>
</div>
</div>
</div>
</div>
<h2 class="h3 mt-4">Recent Surveys</h2>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Title</th>
<th>Created</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php while ($survey = $recent_surveys_stmt->fetch()): ?>
<tr>
<td><?php echo htmlspecialchars($survey['title']); ?></td>
<td><?php echo htmlspecialchars(date('Y-m-d', strtotime($survey['created_at']))); ?></td>
<td>
<a href="survey_results.php?id=<?php echo $survey['id']; ?>" class="btn btn-sm btn-outline-success">Results</a>
<a href="survey_build.php?id=<?php echo $survey['id']; ?>" class="btn btn-sm btn-outline-info">Manage</a>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</main>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>