patrol-control-system / reports.html
secutorpro's picture
en mes a jour se systeme pour l'instaler dans guhub et supabase
96d812c verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Reports & Analytics - Patrol Control System</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
</head>
<body class="bg-gray-50 min-h-screen">
<!-- Sidebar -->
<custom-sidebar></custom-sidebar>
<!-- Header -->
<custom-header></custom-header>
<!-- Main Content -->
<main class="ml-64 mt-16 p-6">
<div class="flex justify-between items-center mb-6">
<div>
<h1 class="text-2xl font-bold text-gray-800">Reports & Analytics</h1>
<p class="text-gray-600">Detailed insights and patrol performance metrics</p>
</div>
<button class="bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg flex items-center shadow-sm">
<i data-feather="download" class="mr-2 w-4 h-4"></i>
Export Report
</button>
</div>
<!-- Date Range Filter -->
<div class="bg-white rounded-xl shadow-sm p-6 mb-6">
<div class="grid grid-cols-1 md:grid-cols-5 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Start Date</label>
<input type="date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">End Date</label>
<input type="date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Report Type</label>
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
<option>Performance Summary</option>
<option>Incident Reports</option>
<option>Guard Activity</option>
<option>Compliance Metrics</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Zone</label>
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
<option>All Zones</option>
<option>Zone A</option>
<option>Zone B</option>
<option>Zone C</option>
</select>
</div>
<div class="flex items-end">
<button class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg">
Generate Report
</button>
</div>
</div>
</div>
<!-- Stats Overview -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6">
<div class="bg-white rounded-xl shadow-sm p-6 border-l-4 border-blue-500 hover:shadow-md transition-shadow">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-500 text-sm font-medium">TOTAL ROUNDS</p>
<p class="text-2xl font-bold mt-1">142</p>
<p class="text-green-500 text-xs mt-1 flex items-center">
<i data-feather="trending-up" class="w-3 h-3 mr-1"></i>
12% from last month
</p>
</div>
<div class="bg-blue-100 p-3 rounded-lg">
<i data-feather="refresh-cw" class="text-blue-600 w-6 h-6"></i>
</div>
</div>
</div>
<div class="bg-white rounded-xl shadow-sm p-6 border-l-4 border-green-500 hover:shadow-md transition-shadow">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-500 text-sm font-medium">AVG. COMPLETION TIME</p>
<p class="text-2xl font-bold mt-1">42 min</p>
<p class="text-green-500 text-xs mt-1 flex items-center">
<i data-feather="trending-down" class="w-3 h-3 mr-1"></i>
3.2% improvement
</p>
</div>
<div class="bg-green-100 p-3 rounded-lg">
<i data-feather="clock" class="text-green-600 w-6 h-6"></i>
</div>
</div>
</div>
<div class="bg-white rounded-xl shadow-sm p-6 border-l-4 border-amber-500 hover:shadow-md transition-shadow">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-500 text-sm font-medium">INCIDENTS REPORTED</p>
<p class="text-2xl font-bold mt-1">18</p>
<p class="text-red-500 text-xs mt-1 flex items-center">
<i data-feather="trending-up" class="w-3 h-3 mr-1"></i>
4.1% from last month
</p>
</div>
<div class="bg-amber-100 p-3 rounded-lg">
<i data-feather="alert-triangle" class="text-amber-600 w-6 h-6"></i>
</div>
</div>
</div>
<div class="bg-white rounded-xl shadow-sm p-6 border-l-4 border-violet-500 hover:shadow-md transition-shadow">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-500 text-sm font-medium">MISSED POINTS</p>
<p class="text-2xl font-bold mt-1">7</p>
<p class="text-green-500 text-xs mt-1 flex items-center">
<i data-feather="trending-down" class="w-3 h-3 mr-1"></i>
12% reduction
</p>
</div>
<div class="bg-violet-100 p-3 rounded-lg">
<i data-feather="target" class="text-violet-600 w-6 h-6"></i>
</div>
</div>
</div>
</div>
<!-- Charts Section -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6">
<div class="bg-white rounded-xl shadow-sm p-6">
<div class="flex justify-between items-center mb-4">
<h2 class="text-lg font-semibold text-gray-800">Round Completion Rate</h2>
<div class="flex space-x-2">
<button class="text-xs px-3 py-1 bg-blue-100 text-blue-700 rounded-full">Week</button>
<button class="text-xs px-3 py-1 bg-gray-100 text-gray-600 rounded-full">Month</button>
</div>
</div>
<div class="h-72 flex items-center justify-center bg-gray-50 rounded-lg">
<div class="text-center">
<i data-feather="bar-chart-2" class="w-12 h-12 text-gray-400 mx-auto mb-2"></i>
<p class="text-gray-500">Completion rate chart</p>
<p class="text-gray-400 text-sm mt-1">94% completion rate this month</p>
</div>
</div>
</div>
<div class="bg-white rounded-xl shadow-sm p-6">
<div class="flex justify-between items-center mb-4">
<h2 class="text-lg font-semibold text-gray-800">Incidents by Category</h2>
<div class="flex space-x-2">
<button class="text-xs px-3 py-1 bg-blue-100 text-blue-700 rounded-full">Week</button>
<button class="text-xs px-3 py-1 bg-gray-100 text-gray-600 rounded-full">Month</button>
</div>
</div>
<div class="h-72 flex items-center justify-center bg-gray-50 rounded-lg">
<div class="text-center">
<i data-feather="pie-chart" class="w-12 h-12 text-gray-400 mx-auto mb-2"></i>
<p class="text-gray-500">Incidents distribution chart</p>
<p class="text-gray-400 text-sm mt-1">Security incidents by category</p>
</div>
</div>
</div>
</div>
<!-- Recent Reports Table -->
<div class="bg-white rounded-xl shadow-sm overflow-hidden">
<div class="border-b border-gray-200 px-6 py-4">
<h2 class="text-lg font-semibold text-gray-800">Recent Reports</h2>
</div>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Report</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date Range</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Generated By</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">Weekly Performance Summary</div>
<div class="text-sm text-gray-500">ID: REP-2023-045</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
Jan 15 - Jan 21, 2023
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center">
<div class="bg-gray-200 border-2 border-dashed rounded-xl w-8 h-8 mr-2"></div>
<div>
<div class="text-sm font-medium text-gray-900">Sarah Williams</div>
<div class="text-sm text-gray-500">Admin</div>
</div>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">
Generated
</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
<a href="#" class="text-blue-600 hover:text-blue-900">View</a>
<a href="#" class="ml-3 text-indigo-600 hover:text-indigo-900">Download</a>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">Monthly Incident Report</div>
<div class="text-sm text-gray-500">ID: REP-2023-044</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
Dec 1 - Dec 31, 2022
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center">
<div class="bg-gray-200 border-2 border-dashed rounded-xl w-8 h-8 mr-2"></div>
<div>
<div class="text-sm font-medium text-gray-900">Robert Brown</div>
<div class="text-sm text-gray-500">Manager</div>
</div>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">
Generated
</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
<a href="#" class="text-blue-600 hover:text-blue-900">View</a>
<a href="#" class="ml-3 text-indigo-600 hover:text-indigo-900">Download</a>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">Quarterly Compliance Audit</div>
<div class="text-sm text-gray-500">ID: REP-2023-043</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
Oct 1 - Dec 31, 2022
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center">
<div class="bg-gray-200 border-2 border-dashed rounded-xl w-8 h-8 mr-2"></div>
<div>
<div class="text-sm font-medium text-gray-900">Jennifer Davis</div>
<div class="text-sm text-gray-500">Director</div>
</div>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">
Processing
</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
<a href="#" class="text-blue-600 hover:text-blue-900">View</a>
<a href="#" class="ml-3 text-indigo-600 hover:text-indigo-900">Download</a>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">Annual Security Review</div>
<div class="text-sm text-gray-500">ID: REP-2023-042</div>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
Jan 1 - Dec 31, 2022
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center">
<div class="bg-gray-200 border-2 border-dashed rounded-xl w-8 h-8 mr-2"></div>
<div>
<div class="text-sm font-medium text-gray-900">Michael Thompson</div>
<div class="text-sm text-gray-500">Director</div>
</div>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">
Failed
</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
<a href="#" class="text-blue-600 hover:text-blue-900">View</a>
<a href="#" class="ml-3 text-indigo-600 hover:text-indigo-900">Download</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Pagination -->
<div class="mt-8 flex justify-between items-center">
<div class="text-sm text-gray-600">
Showing 1 to 4 of 32 entries
</div>
<nav class="flex items-center space-x-2">
<a href="#" class="px-3 py-1 rounded-lg bg-gray-100 hover:bg-gray-200 text-gray-700">Previous</a>
<a href="#" class="px-3 py-1 rounded-lg bg-blue-600 text-white">1</a>
<a href="#" class="px-3 py-1 rounded-lg bg-gray-100 hover:bg-gray-200 text-gray-700">2</a>
<a href="#" class="px-3 py-1 rounded-lg bg-gray-100 hover:bg-gray-200 text-gray-700">3</a>
<span class="px-3 py-1 text-gray-500">...</span>
<a href="#" class="px-3 py-1 rounded-lg bg-gray-100 hover:bg-gray-200 text-gray-700">8</a>
<a href="#" class="px-3 py-1 rounded-lg bg-gray-100 hover:bg-gray-200 text-gray-700">Next</a>
</nav>
</div>
</main>
<script src="components/sidebar.js"></script>
<script src="components/header.js"></script>
<script type="module" src="script.js"></script>
<script>
feather.replace();
</script>
</body>
</html>