Initial Commit

This commit is contained in:
Ben Mosley
2026-04-25 12:03:54 -05:00
commit 5d86aa000c
30 changed files with 2771 additions and 0 deletions

131
admin.html Normal file
View File

@@ -0,0 +1,131 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Panel - Work Orders</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
</head>
<body class="bg-dark text-white">
<!-- Admin Panel Header -->
<div class="container mt-5 text-center">
<h2>Thor's Hammer Electrical - Admin Panel</h2>
</div>
<!-- Table Container -->
<div class="container mt-4">
<table class="table table-striped table-bordered table-hover">
<thead class="table-dark">
<tr>
<th>ID</th>
<th>Name</th>
<th>Job</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Zipcode</th>
<th>Phone</th>
<th>Submitted At</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for order in work_orders %}
<tr>
<td>{{ order[0] }}</td> <!-- ID -->
<td>{{ order[1] }}</td> <!-- Name -->
<td>{{ order[2] }}</td> <!-- Job -->
<td>{{ order[3] }}</td> <!-- Address -->
<td>{{ order[4] }}</td> <!-- City -->
<td>{{ order[5] }}</td> <!-- State -->
<td>{{ order[6] }}</td> <!-- Zipcode -->
<td>{{ order[7] }}</td> <!-- Phone -->
<td>{{ order[8] }}</td> <!-- Submitted At -->
<td>
<!-- Delete Button -->
<form action="{{ url_for('delete_order', order_id=order[0]) }}" method="POST" style="display:inline;">
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
<!-- Mark as Complete Button -->
<form action="{{ url_for('mark_complete', order_id=order[0]) }}" method="POST" style="display:inline;">
<button type="submit" class="btn btn-success btn-sm">Mark as Complete</button>
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<!-- Logout Container -->
<div class="container text-center mt-4">
<a href="{{ url_for('completed_jobs') }}" class="btn btn-info btn-lg mb-3">View Completed Jobs</a>
<!-- Logout Button -->
<form action="{{ url_for('logout') }}" method="POST" class="d-inline-block">
<button type="submit" class="btn btn-warning btn-lg mb-3">Logout</button>
</form>
</div>
<h2 class="text-center text-white">Website Analytics</h2>
<div class="row">
<div class="col-md-4">
<div class="card text-center bg-primary text-white">
<div class="card-body">
<h4>Total Visitors</h4>
<h2 id="total-visitors">Loading...</h2>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card text-center bg-success text-white">
<div class="card-body">
<h4>Page Views</h4>
<h2 id="page-views">Loading...</h2>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card text-center bg-warning text-white">
<div class="card-body">
<h4>Most Visited Page</h4>
<h2 id="top-page">Loading...</h2>
</div>
</div>
</div>
</div>
<script>
async function fetchAnalytics() {
try {
let response = await fetch('/analytics');
let data = await response.json();
if (data.error) {
document.getElementById('total-visitors').textContent = "Error";
document.getElementById('page-views').textContent = "Error";
document.getElementById('top-page').textContent = "Error";
} else {
document.getElementById('total-visitors').textContent = data.total_users;
document.getElementById('page-views').textContent = data.total_pageviews;
document.getElementById('top-page').textContent = data.top_page;
}
} catch (error) {
console.error("Error fetching analytics:", error);
}
}
fetchAnalytics();
</script>
<!-- Bootstrap JS and Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
</body>
</html>