|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Admin Dashboard</title> |
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> |
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css"> |
|
|
<style> |
|
|
.sidebar { |
|
|
min-height: 100vh; |
|
|
background-color: |
|
|
color: white; |
|
|
} |
|
|
.sidebar-link { |
|
|
color: rgba(255, 255, 255, 0.75); |
|
|
text-decoration: none; |
|
|
display: block; |
|
|
padding: 10px 15px; |
|
|
border-radius: 5px; |
|
|
margin-bottom: 5px; |
|
|
} |
|
|
.sidebar-link:hover, .sidebar-link.active { |
|
|
color: white; |
|
|
background-color: |
|
|
} |
|
|
.stat-card { |
|
|
border-radius: 10px; |
|
|
padding: 20px; |
|
|
color: white; |
|
|
margin-bottom: 20px; |
|
|
} |
|
|
.stat-card.total { |
|
|
background: linear-gradient(135deg, #6B73FF 0%, #000DFF 100%); |
|
|
} |
|
|
.stat-card.open { |
|
|
background: linear-gradient(135deg, #FF6B6B 0%, #FF0000 100%); |
|
|
} |
|
|
.stat-card.progress { |
|
|
background: linear-gradient(135deg, #FFD166 0%, #FF9500 100%); |
|
|
} |
|
|
.stat-card.resolved { |
|
|
background: linear-gradient(135deg, #06D6A0 0%, #00A86B 100%); |
|
|
} |
|
|
.ticket-table th { |
|
|
background-color: |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body> |
|
|
<div class="container-fluid"> |
|
|
<div class="row"> |
|
|
<!-- Sidebar --> |
|
|
<div class="col-md-3 col-lg-2 d-md-block sidebar collapse bg-dark"> |
|
|
<div class="position-sticky pt-3"> |
|
|
<div class="text-center mb-4"> |
|
|
<h4>SupportHub Admin</h4> |
|
|
<p class="text-muted">Welcome, <?php echo htmlspecialchars($_SESSION['username']); ?></p> |
|
|
</div> |
|
|
|
|
|
<ul class="nav flex-column"> |
|
|
<li> |
|
|
<a href="dashboard.php" class="sidebar-link active"> |
|
|
<i class="bi bi-speedometer2 me-2"></i> Dashboard |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="tickets.php" class="sidebar-link"> |
|
|
<i class="bi bi-ticket-detailed me-2"></i> Tickets |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="staff.php" class="sidebar-link"> |
|
|
<i class="bi bi-people me-2"></i> Staff |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="reports.php" class="sidebar-link"> |
|
|
<i class="bi bi-graph-up me-2"></i> Reports |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="settings.php" class="sidebar-link"> |
|
|
<i class="bi bi-gear me-2"></i> Settings |
|
|
</a> |
|
|
</li> |
|
|
<li class="mt-4"> |
|
|
<a href="../logout.php" class="sidebar-link text-danger"> |
|
|
<i class="bi bi-box-arrow-right me-2"></i> Logout |
|
|
</a> |
|
|
</li> |
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<!-- Main Content --> |
|
|
<main class="col-md-9 ms-sm-auto col-lg-10 px-md-4 py-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 class="btn-toolbar mb-2 mb-md-0"> |
|
|
<div class="btn-group me-2"> |
|
|
<button type="button" class="btn btn-sm btn-outline-secondary">Export</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<!-- Stats Cards --> |
|
|
<div class="row"> |
|
|
<div class="col-md-3"> |
|
|
<div class="stat-card total"> |
|
|
<h5>Total Tickets</h5> |
|
|
<h2><?php echo $total_tickets; ?></h2> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-md-3"> |
|
|
<div class="stat-card open"> |
|
|
<h5>Open Tickets</h5> |
|
|
<h2><?php echo $open_tickets; ?></h2> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-md-3"> |
|
|
<div class="stat-card progress"> |
|
|
<h5>In Progress</h5> |
|
|
<h2><?php echo $in_progress_tickets; ?></h2> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-md-3"> |
|
|
<div class="stat-card resolved"> |
|
|
<h5>Resolved</h5> |
|
|
<h2><?php echo $resolved_tickets; ?></h2> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<!-- Recent Tickets --> |
|
|
<div class="card mt-4"> |
|
|
<div class="card-header"> |
|
|
<h5 class="mb-0">Recent Tickets</h5> |
|
|
</div> |
|
|
<div class="card-body"> |
|
|
<div class="table-responsive"> |
|
|
<table class="table table-hover ticket-table"> |
|
|
<thead> |
|
|
<tr> |
|
|
<th>Ticket ID</th> |
|
|
<th>Subject</th> |
|
|
<th>Status</th> |
|
|
<th>Priority</th> |
|
|
<th>Created</th> |
|
|
<th>Actions</th> |
|
|
</tr> |
|
|
</thead> |
|
|
<tbody> |
|
|
<?php while ($ticket = mysqli_fetch_assoc($recent_tickets)): ?> |
|
|
<tr> |
|
|
<td><?php echo htmlspecialchars($ticket['ticket_id']); ?></td> |
|
|
<td><?php echo htmlspecialchars($ticket['subject']); ?></td> |
|
|
<td> |
|
|
<span class="badge |
|
|
<?php |
|
|
switch ($ticket['status']) { |
|
|
case 'Open': echo 'bg-danger'; break; |
|
|
case 'In Progress': echo 'bg-warning text-dark'; break; |
|
|
case 'Resolved': echo 'bg-success'; break; |
|
|
case 'Closed': echo 'bg-secondary'; break; |
|
|
} |
|
|
?>"> |
|
|
<?php echo htmlspecialchars($ticket['status']); ?> |
|
|
</span> |
|
|
</td> |
|
|
<td><?php echo htmlspecialchars($ticket['priority']); ?></td> |
|
|
<td><?php echo date('M d, Y', strtotime($ticket['created_at'])); ?></td> |
|
|
<td> |
|
|
<a href="view-ticket.php?id=<?php echo $ticket['id']; ?>" class="btn btn-sm btn-outline-primary"> |
|
|
<i class="bi bi-eye"></i> View |
|
|
</a> |
|
|
</td> |
|
|
</tr> |
|
|
<?php endwhile; ?> |
|
|
</tbody> |
|
|
</table> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</main> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<script src="https: |
|
|
</body> |
|
|
</html> |
|
|
|