add: whitelist

This commit is contained in:
2026-02-20 13:36:02 +00:00
parent 614dea44b4
commit a12366867d
3 changed files with 35 additions and 10 deletions

View File

@@ -15,7 +15,10 @@ CREATE TABLE IF NOT EXISTS items (
time TEXT NOT NULL time TEXT NOT NULL
) )
""") """)
try:
cursor.execute("ALTER TABLE items ADD COLUMN noshutdown INTEGER DEFAULT 0")
except sqlite3.OperationalError:
pass
conn.commit() conn.commit()
conn.close() conn.close()
@@ -37,6 +40,7 @@ def mainpage():
def submit(): def submit():
value = request.form.get("query") value = request.form.get("query")
time_value = request.form.get("time") time_value = request.form.get("time")
noshutdown = request.form.get("noshutdown")
if not value or not time_value: if not value or not time_value:
return redirect(url_for("mainpage")) return redirect(url_for("mainpage"))
conn = get_db_connection() conn = get_db_connection()
@@ -47,8 +51,8 @@ def submit():
conn.close() conn.close()
return redirect(url_for("mainpage")) return redirect(url_for("mainpage"))
cursor.execute( cursor.execute(
"INSERT INTO items (name, time) VALUES (?, ?)", "INSERT INTO items (name, time, noshutdown) VALUES (?, ?)",
(value, time_value) (value, time_value, noshutdown)
) )
conn.commit() conn.commit()
conn.close() conn.close()
@@ -79,13 +83,13 @@ def lookup():
conn = get_db_connection() conn = get_db_connection()
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute( cursor.execute(
"SELECT name, time FROM items WHERE name = ?", "SELECT name, time, noshutdown FROM items WHERE name = ?",
(name,) (name,)
) )
item = cursor.fetchone() item = cursor.fetchone()
conn.close() conn.close()
if item: if item:
return jsonify({"name": item["name"], "time": item["time"]}), 200 return jsonify({"name": item["name"], "noshutdown": item["noshutdown"], "time": item["time"]}), 200
else: else:
return jsonify({"error": "Not found"}), 404 return jsonify({"error": "Not found"}), 404

View File

@@ -35,7 +35,7 @@
<header> <header>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container"> <div class="container">
<a class="navbar-brand" href="{{ url_for('mainpage') }}">BG Shutdown</a> <a class="navbar-brand" href="{{ url_for('mainpage') }}">BS Shutdown</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>

View File

@@ -13,9 +13,16 @@
class="form-control bg-dark text-white" class="form-control bg-dark text-white"
placeholder="Nom de la machine"> placeholder="Nom de la machine">
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
<select name="time" class="form-select bg-dark text-white"> <div class="form-check text-white">
<input class="form-check-input" type="checkbox" name="noshutdown" id="noshutdown">
<label class="form-check-label" for="noshutdown">
Whitelist shutdown
</label>
</div>
</div>
<div class="col-md-2">
<select name="time" class="form-select bg-dark text-white" id="time-select">
{% for hour in range(0, 24) %} {% for hour in range(0, 24) %}
<option value="{{ '%02d:00'|format(hour) }}">{{ '%02d:00'|format(hour) }}</option> <option value="{{ '%02d:00'|format(hour) }}">{{ '%02d:00'|format(hour) }}</option>
<option value="{{ '%02d:30'|format(hour) }}">{{ '%02d:30'|format(hour) }}</option> <option value="{{ '%02d:30'|format(hour) }}">{{ '%02d:30'|format(hour) }}</option>
@@ -38,9 +45,12 @@
{% for item in items %} {% for item in items %}
<div class="d-flex justify-content-between align-items-center py-2"> <div class="d-flex justify-content-between align-items-center py-2">
<span class="text-white">{{ item.name }}</span> <span class="text-white">{{ item.name }}</span>
{% if item.noshutdown %}
<span class="text-green">OUI</span>
{% else %}
<span class="text-red">NON</span>
<span class="text-white">{{ item.time }}</span> <span class="text-white">{{ item.time }}</span>
{% endif %}
<form method="post" action="/delete" class="m-0 p-0"> <form method="post" action="/delete" class="m-0 p-0">
<input type="hidden" name="item_name" value="{{ item.name }}"> <input type="hidden" name="item_name" value="{{ item.name }}">
<button type="submit" class="btn btn-sm btn-danger">&times;</button> <button type="submit" class="btn btn-sm btn-danger">&times;</button>
@@ -55,4 +65,15 @@
</div> </div>
<script>
const tickCheckbox = document.getElementById('tick'); // script pr desactiver la selection de l'heure si whitelist
const timeSelect = document.getElementById('time-select');
timeSelect.disabled = tickCheckbox.checked;
tickCheckbox.addEventListener('change', function() {
timeSelect.disabled = this.checked;
});
</script>
{% endblock %} {% endblock %}