mirror of
https://github.com/StefBuwalda/ProjectIOT.git
synced 2025-10-29 18:59:57 +00:00
Automatic spacing by black formatter
This commit is contained in:
@@ -2,86 +2,87 @@
|
||||
{% block content %}
|
||||
|
||||
<div 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="display-4 fw-bold" style="color: #313A4D;">Numberplate</h1>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<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="display-4 fw-bold" style="color: #313A4D;">Numberplate</h1>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Add numberplate</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<form method="POST" class="contact-form" id="numberplateForm">
|
||||
{{ form.hidden_tag() }}
|
||||
<div class="form-field">
|
||||
{{ form.numberplate(class="form-input",style="width: 200px; height: 40px;") }}
|
||||
</div>
|
||||
<div class="button-container" style="margin-top: 15px;">
|
||||
{{ form.submit(class="btn btn-sm btn-dark", style="width: 200px;") }}
|
||||
</div>
|
||||
</form>
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Add numberplate</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<form method="POST" class="contact-form" id="numberplateForm">
|
||||
{{ form.hidden_tag() }}
|
||||
<div class="form-field">
|
||||
{{ form.numberplate(class="form-input",style="width: 200px; height: 40px;") }}
|
||||
</div>
|
||||
<div class="button-container" style="margin-top: 15px;">
|
||||
{{ form.submit(class="btn btn-sm btn-dark", style="width: 200px;") }}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Numberplates</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<table class="table table-sm table-hover" id="numberplatesTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">ID</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="numberplatesBody">
|
||||
{% for plate in plates %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ plate.id }}</small></td>
|
||||
<td><small class="fs-6">{{ plate.plate }}</small></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Numberplates</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<table class="table table-sm table-hover" id="numberplatesTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">ID</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="numberplatesBody">
|
||||
{% for plate in plates %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ plate.id }}</small></td>
|
||||
<td><small class="fs-6">{{ plate.plate }}</small></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.getElementById('numberplateForm').addEventListener('submit', async function(e) {
|
||||
e.preventDefault();
|
||||
const form = e.target;
|
||||
const formData = new FormData(form);
|
||||
<script>
|
||||
document.getElementById('numberplateForm').addEventListener('submit', async function (e) {
|
||||
e.preventDefault();
|
||||
const form = e.target;
|
||||
const formData = new FormData(form);
|
||||
|
||||
const response = await fetch(form.action || window.location.pathname, {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: {'X-Requested-With': 'XMLHttpRequest'}
|
||||
});
|
||||
const response = await fetch(form.action || window.location.pathname, {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: { 'X-Requested-With': 'XMLHttpRequest' }
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
// Update the table body
|
||||
const tbody = document.getElementById('numberplatesBody');
|
||||
tbody.innerHTML = '';
|
||||
data.plates.forEach(plate => {
|
||||
tbody.innerHTML += `<tr>
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
// Update the table body
|
||||
const tbody = document.getElementById('numberplatesBody');
|
||||
tbody.innerHTML = '';
|
||||
data.plates.forEach(plate => {
|
||||
tbody.innerHTML += `<tr>
|
||||
<td><small class="fs-6">${plate.id}</small></td>
|
||||
<td><small class="fs-6">${plate.plate}</small></td>
|
||||
</tr>`;
|
||||
});
|
||||
form.reset();
|
||||
} else {
|
||||
alert('Failed to add numberplate.');
|
||||
}
|
||||
});
|
||||
form.reset();
|
||||
} else {
|
||||
alert('Failed to add numberplate.');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -1,72 +1,74 @@
|
||||
{%extends 'base.html' %}
|
||||
{% block content %}
|
||||
<div 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="display-4 fw-bold" style="color: #313A4D;">Dashboard</h1>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<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="display-4 fw-bold" style="color: #313A4D;">Dashboard</h1>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Logs</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<table class="table table-sm table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">Time</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
<th scope="col" class="fs-5">Gate Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for log in logs %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ log.dateLogged.strftime('%H:%M:%S') }}</small></td>
|
||||
<td><small class="fs-6">{{ log.plate }}</small></td>
|
||||
<td>
|
||||
<span class="badge {% if log.status == 'success' %}bg-success{% elif log.status == 'warning' %}bg-warning{% elif log.status == 'error' %}bg-danger{% else %}bg-secondary{% endif %} fs-6">
|
||||
{{ log.allowed }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Logs</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<table class="table table-sm table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">Time</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
<th scope="col" class="fs-5">Gate Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for log in logs %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ log.dateLogged.strftime('%H:%M:%S') }}</small></td>
|
||||
<td><small class="fs-6">{{ log.plate }}</small></td>
|
||||
<td>
|
||||
<span
|
||||
class="badge {% if log.status == 'success' %}bg-success{% elif log.status == 'warning' %}bg-warning{% elif log.status == 'error' %}bg-danger{% else %}bg-secondary{% endif %} fs-6">
|
||||
{{ log.allowed }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Numberplates</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<table class="table table-sm table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">ID</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for plate in plates %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ plate.id }}</small></td>
|
||||
<td><small class="fs-6">{{ plate.plate }}</small></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-12">
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title fs-4">Numberplates</h5>
|
||||
<div class="log-container" style="max-height: 250px; overflow-y: auto;">
|
||||
<table class="table table-sm table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">ID</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for plate in plates %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ plate.id }}</small></td>
|
||||
<td><small class="fs-6">{{ plate.plate }}</small></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -9,7 +9,7 @@
|
||||
<table class="table table-sm table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="fs-5">Time</th>
|
||||
<th scope="col" class="fs-5">Time</th>
|
||||
<th scope="col" class="fs-5">Numberplate</th>
|
||||
<th scope="col" class="fs-5">Gate Status</th>
|
||||
</tr>
|
||||
@@ -17,10 +17,11 @@
|
||||
<tbody>
|
||||
{% for form in recent_logs %}
|
||||
<tr>
|
||||
<td><small class="fs-6">{{ form.timestamp.strftime('%H:%M:%S') }}</small></td>
|
||||
<td><small class="fs-6">{{ form.timestamp.strftime('%H:%M:%S') }}</small></td>
|
||||
<td><small class="fs-6">{{ form.plate }}</small></td>
|
||||
<td>
|
||||
<span class="badge {% if log.status == 'success' %}bg-success{% elif log.status == 'warning' %}bg-warning{% elif log.status == 'error' %}bg-danger{% else %}bg-secondary{% endif %} fs-6">
|
||||
<span
|
||||
class="badge {% if log.status == 'success' %}bg-success{% elif log.status == 'warning' %}bg-warning{% elif log.status == 'error' %}bg-danger{% else %}bg-secondary{% endif %} fs-6">
|
||||
{{ form.allowed }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
@@ -29,6 +29,7 @@ def add():
|
||||
db.session.add(ap)
|
||||
db.session.commit()
|
||||
|
||||
# Update the list on the page with JavaScript
|
||||
if request.headers.get("X-Requested-With") == "XMLHttpRequest":
|
||||
plates = AllowedPlate.query.order_by(AllowedPlate.id).all()
|
||||
return jsonify(
|
||||
|
||||
Reference in New Issue
Block a user