|
|
|
|
@ -93,7 +93,7 @@ def login() -> str | Response:
@@ -93,7 +93,7 @@ def login() -> str | Response:
|
|
|
|
|
except BackendApiError: |
|
|
|
|
return render_template( |
|
|
|
|
"login.html", |
|
|
|
|
login_error="Impossible de se connecter au service pour le moment. Verifiez que le backend est demarre puis reessayez.", |
|
|
|
|
login_error="Impossible de se connecter au service pour le moment. Vérifiez que le backend est demarré puis réessayez.", |
|
|
|
|
attempted_username=username, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
@ -161,11 +161,11 @@ def save_trigger() -> Response:
@@ -161,11 +161,11 @@ def save_trigger() -> Response:
|
|
|
|
|
start_seconds = float(start_raw) |
|
|
|
|
end_seconds = _parse_optional_float(end_raw) |
|
|
|
|
except ValueError: |
|
|
|
|
flash("Les temps de debut/fin doivent etre numeriques.", "error") |
|
|
|
|
flash("Les temps de debut/fin doivent être numériques.", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
if start_seconds < 0 or (end_seconds is not None and end_seconds <= start_seconds): |
|
|
|
|
flash("Fenetre temporelle invalide.", "error") |
|
|
|
|
flash("Fenêtre temporelle invalide.", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
payload = { |
|
|
|
|
@ -186,7 +186,7 @@ def save_trigger() -> Response:
@@ -186,7 +186,7 @@ def save_trigger() -> Response:
|
|
|
|
|
flash(f"Echec d'enregistrement du trigger: {exc}", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
flash(f"Trigger {trigger_type} enregistre.", "success") |
|
|
|
|
flash(f"Trigger {trigger_type} enregistré.", "success") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -224,7 +224,7 @@ def play_trigger() -> Response:
@@ -224,7 +224,7 @@ def play_trigger() -> Response:
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
client.play_trigger(trigger_id) |
|
|
|
|
flash(f"Trigger {trigger_id} demarre.", "success") |
|
|
|
|
flash(f"Trigger {trigger_id} demarré.", "success") |
|
|
|
|
except BackendApiError as exc: |
|
|
|
|
flash(f"Echec du lancement: {exc}", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
@ -241,7 +241,7 @@ def stop_audio() -> Response:
@@ -241,7 +241,7 @@ def stop_audio() -> Response:
|
|
|
|
|
client.stop_audio() |
|
|
|
|
flash("Audio arrete.", "info") |
|
|
|
|
except BackendApiError as exc: |
|
|
|
|
flash(f"Echec de l'arret audio: {exc}", "error") |
|
|
|
|
flash(f"Echec de l'arrêt audio: {exc}", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -253,7 +253,7 @@ def upload_audio() -> Response:
@@ -253,7 +253,7 @@ def upload_audio() -> Response:
|
|
|
|
|
|
|
|
|
|
audio = request.files.get("audio_file") |
|
|
|
|
if audio is None or audio.filename is None or audio.filename.strip() == "": |
|
|
|
|
flash("Selectionnez d'abord un fichier.", "error") |
|
|
|
|
flash("Sélectionnez d'abord un fichier.", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
filename = secure_filename(audio.filename) |
|
|
|
|
@ -263,17 +263,17 @@ def upload_audio() -> Response:
@@ -263,17 +263,17 @@ def upload_audio() -> Response:
|
|
|
|
|
|
|
|
|
|
ext = Path(filename).suffix.lower() |
|
|
|
|
if ext not in ALLOWED_AUDIO_EXTENSIONS: |
|
|
|
|
flash("Format audio non supporte.", "error") |
|
|
|
|
flash("Format audio non supporté.", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
existing_names = {item.name.lower() for item in _music_dir().iterdir() if item.is_file()} |
|
|
|
|
if filename.lower() in existing_names: |
|
|
|
|
flash("Un fichier avec ce nom existe deja.", "error") |
|
|
|
|
flash("Un fichier avec ce nom existe déjà.", "error") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
destination = _music_dir() / filename |
|
|
|
|
audio.save(destination) |
|
|
|
|
flash(f"Fichier {filename} televerse.", "success") |
|
|
|
|
flash(f"Fichier {filename} téléversé.", "success") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -294,7 +294,7 @@ def delete_audio() -> Response:
@@ -294,7 +294,7 @@ def delete_audio() -> Response:
|
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
target.unlink() |
|
|
|
|
flash(f"Fichier {filename} supprime.", "success") |
|
|
|
|
flash(f"Fichier {filename} supprimé.", "success") |
|
|
|
|
return redirect(url_for("ui.dashboard")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|