|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Admin Dashboard - ForensicFlow</title> |
|
|
<link rel="icon" type="image/x-icon" href="/static/favicon.ico"> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
|
|
<script src="https://unpkg.com/feather-icons"></script> |
|
|
<script> |
|
|
tailwind.config = { |
|
|
theme: { |
|
|
extend: { |
|
|
colors: { |
|
|
primary: '#1e40af', |
|
|
secondary: '#dc2626' |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
<style> |
|
|
.glass-effect { |
|
|
background: rgba(255, 255, 255, 0.1); |
|
|
backdrop-filter: blur(10px); |
|
|
border: 1px solid rgba(255, 255, 255, 0.2); |
|
|
} |
|
|
.stat-card { |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
.stat-card:hover { |
|
|
transform: translateY(-5px); |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="bg-gradient-to-br from-gray-900 to-gray-800 min-h-screen"> |
|
|
|
|
|
<nav class="bg-black/30 backdrop-blur-md border-b border-gray-700"> |
|
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> |
|
|
<div class="flex justify-between items-center py-4"> |
|
|
<div class="flex items-center space-x-4"> |
|
|
<div class="w-10 h-10 bg-primary rounded-lg flex items-center justify-center"> |
|
|
<i data-feather="settings" class="text-white"></i> |
|
|
</div> |
|
|
<div> |
|
|
<h1 class="text-white font-bold text-xl">Admin Dashboard</h1> |
|
|
<p class="text-gray-400 text-sm">Full System Control</p> |
|
|
</div> |
|
|
</div> |
|
|
<div class="flex items-center space-x-4"> |
|
|
<span class="text-white">Admin User</span> |
|
|
<button class="text-gray-400 hover:text-white"> |
|
|
<i data-feather="log-out" class="w-5 h-5"></i> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</nav> |
|
|
|
|
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8"> |
|
|
<div class="stat-card glass-effect rounded-xl p-6 text-white"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-400 text-sm">Pending Reviews</p> |
|
|
<p class="text-3xl font-bold">12</p> |
|
|
</div> |
|
|
<i data-feather="clock" class="w-8 h-8 text-yellow-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="stat-card glass-effect rounded-xl p-6 text-white"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-400 text-sm">Active Cases</p> |
|
|
<p class="text-3xl font-bold">47</p> |
|
|
</div> |
|
|
<i data-feather="file-text" class="w-8 h-8 text-primary"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="stat-card glass-effect rounded-xl p-6 text-white"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-400 text-sm">Approved Reports</p> |
|
|
<p class="text-3xl font-bold">156</p> |
|
|
</div> |
|
|
<i data-feather="check-circle" class="w-8 h-8 text-green-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="stat-card glass-effect rounded-xl p-6 text-white"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-400 text-sm">System Users</p> |
|
|
<p class="text-3xl font-bold">23</p> |
|
|
</div> |
|
|
<i data-feather="users" class="w-8 h-8 text-purple-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="glass-effect rounded-xl p-6"> |
|
|
<div class="flex space-x-4 border-b border-gray-700 pb-4 mb-6"> |
|
|
<button class="tab-btn bg-primary text-white px-4 py-2 rounded-lg" data-tab="pending">Pending Reviews</button> |
|
|
<button class="tab-btn text-gray-300 hover:text-white px-4 py-2 rounded-lg transition" data-tab="cases">All Cases</button> |
|
|
<button class="tab-btn text-gray-300 hover:text-white px-4 py-2 rounded-lg transition" data-tab="users">User Management</button> |
|
|
<button class="tab-btn text-gray-300 hover:text-white px-4 py-2 rounded-lg transition" data-tab="security">Security</button> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div id="pending-tab" class="tab-content"> |
|
|
<div class="space-y-4"> |
|
|
|
|
|
<div class="glass-effect rounded-lg p-4 flex justify-between items-center"> |
|
|
<div> |
|
|
<h4 class="text-white font-semibold">Case #2024-001: Theft Investigation</h4> |
|
|
<p class="text-gray-400 text-sm">Submitted by: Investigator Ahmed</p> |
|
|
<p class="text-gray-400 text-sm">Date: 2024-01-15</p> |
|
|
</div> |
|
|
<div class="flex space-x-2"> |
|
|
<button class="bg-primary hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition flex items-center space-x-2"> |
|
|
<i data-feather="eye" class="w-4 h-4"></i> |
|
|
<span>Review</span> |
|
|
</button> |
|
|
<button class="bg-secondary hover:bg-red-700 text-white px-4 py-2 rounded-lg transition flex items-center space-x-2"> |
|
|
<i data-feather="edit" class="w-4 h-4"></i> |
|
|
<span>Edit</span> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div id="cases-tab" class="tab-content hidden"> |
|
|
<div class="overflow-x-auto"> |
|
|
<table class="w-full text-white"> |
|
|
<thead> |
|
|
<tr class="border-b border-gray-700"> |
|
|
<th class="text-left py-3 px-4">Case ID</th> |
|
|
<th class="text-left py-3 px-4">Title</th> |
|
|
<th class="text-left py-3 px-4">Investigator</th> |
|
|
<th class="text-left py-3 px-4">Status</th> |
|
|
<th class="text-left py-3 px-4">Actions</th> |
|
|
</tr> |
|
|
</thead> |
|
|
<tbody> |
|
|
<tr class="border-b border-gray-800"> |
|
|
<td class="py-3 px-4">2024-001</td> |
|
|
<td class="py-3 px-4">Commercial Theft</td> |
|
|
<td class="py-3 px-4">Ahmed Hassan</td> |
|
|
<td class="py-3 px-4"><span class="bg-yellow-500 text-white px-2 py-1 rounded text-xs">Under Review</span></td> |
|
|
<td class="py-3 px-4"> |
|
|
<div class="flex space-x-2"> |
|
|
<button class="text-blue-400 hover:text-blue-300"> |
|
|
<i data-feather="edit" class="w-4 h-4"></i> |
|
|
</button> |
|
|
<button class="text-red-400 hover:text-red-300"> |
|
|
<i data-feather="trash-2" class="w-4 h-4"></i> |
|
|
</button> |
|
|
</div> |
|
|
</td> |
|
|
</tr> |
|
|
</tbody> |
|
|
</table> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<script> |
|
|
|
|
|
document.querySelectorAll('.tab-btn').forEach(button => { |
|
|
button.addEventListener('click', () => { |
|
|
|
|
|
document.querySelectorAll('.tab-btn').forEach(btn => { |
|
|
btn.classList.remove('bg-primary', 'text-white'); |
|
|
btn.classList.add('text-gray-300'); |
|
|
}); |
|
|
|
|
|
|
|
|
button.classList.add('bg-primary', 'text-white'); |
|
|
button.classList.remove('text-gray-300'); |
|
|
|
|
|
|
|
|
document.querySelectorAll('.tab-content').forEach(content => { |
|
|
content.classList.add('hidden'); |
|
|
}); |
|
|
|
|
|
|
|
|
const tabId = button.getAttribute('data-tab'); |
|
|
document.getElementById(tabId + '-tab').classList.remove('hidden'); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
feather.replace(); |
|
|
</script> |
|
|
</body> |
|
|
</html> |
|
|
|