site.toml [administration] adresse : l'accueil affiche un bouton « Connexion » vers l'interface. Celle-ci peut tourner derrière le serveur web du site (rtg interface --proxy --prefixe /admin) : adresses préfixées, mot de passe obligatoire, visiteur identifié par X-Forwarded-For, cookie Secure limité au préfixe quand le site est en HTTPS. Exemples nginx et Apache dans le README. Le bouton Arrêter ne remplace plus le bloc de la tâche en même temps que la relève. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
75 lines
4.7 KiB
HTML
75 lines
4.7 KiB
HTML
{% extends "base.html" %}
|
|
{% block titre %}Réglages{% endblock %}
|
|
{% block contenu %}
|
|
<h1>Réglages du site</h1>
|
|
<p class="aide">Enregistrés dans <code>site.toml</code>. Ils valent pour tous les voyages.</p>
|
|
<form class="formulaire" hx-post="{{ base }}/reglages" hx-target="#retour-reglages">
|
|
<fieldset>
|
|
<legend>Site</legend>
|
|
<label>Titre <input name="titre" value="{{ cfg.titre }}"></label>
|
|
<label>Adresse publique <input name="adresse_publique" value="{{ cfg.adresse_publique }}" placeholder="https://…/">
|
|
<span class="aide">Adresse où le site est consulté (liens de partage).</span></label>
|
|
<label>Voyages récents par rubrique sur l'accueil <input type="number" min="1" max="12" name="accueil_nb_recents" value="{{ cfg.accueil_nb_recents }}"></label>
|
|
</fieldset>
|
|
|
|
<fieldset id="video">
|
|
<legend>Vidéos</legend>
|
|
<p class="aide">Chaque rush donne une version 1080p HEVC (H.265) et une version 720p H.264, lue par défaut et partout.</p>
|
|
{% set descriptions = {"econome": "fichiers plus légers, légère perte visible sur les scènes chargées",
|
|
"equilibree": "réglage d'origine, très bon compromis",
|
|
"haute": "presque indiscernable de l'original, fichiers nettement plus gros"} %}
|
|
{% for q, p in qualites.items() %}
|
|
<label class="choix"><input type="radio" name="qualite" value="{{ q }}" {{ 'checked' if cfg.video.qualite == q }}>
|
|
<strong>{{ {"econome": "Économe", "equilibree": "Équilibrée", "haute": "Haute"}[q] }}</strong>
|
|
<span class="aide">{{ descriptions[q] }} (CRF {{ p.crf_hevc }} / {{ p.crf_h264 }})</span></label>
|
|
{% endfor %}
|
|
<label>Encodeur
|
|
<select name="encodeur">
|
|
<option value="processeur" {{ 'selected' if cfg.video.encodeur != 'materiel' }}>Processeur (x265 / x264) : meilleure qualité à taille égale</option>
|
|
<option value="materiel" {{ 'selected' if cfg.video.encodeur == 'materiel' }}>Matériel (VideoToolbox, Mac) : bien plus rapide, fichiers plus gros</option>
|
|
</select></label>
|
|
<label>Vitesse de l'encodeur processeur
|
|
<select name="preset">
|
|
{% for p in ["ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower"] %}
|
|
<option {{ 'selected' if cfg.video.preset == p }}>{{ p }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
<span class="aide">« medium » par défaut ; plus lent = un peu plus léger à qualité égale.</span></label>
|
|
<label>Vidéos encodées en parallèle <input type="number" min="0" max="16" name="jobs" value="{{ cfg.video.jobs }}">
|
|
<span class="aide">0 = automatique selon le nombre de cœurs.</span></label>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend>Photos</legend>
|
|
<label>Plus grand côté des photos web (pixels) <input type="number" min="640" max="6000" step="10" name="grand_cote" value="{{ cfg.photos.grand_cote }}"></label>
|
|
<label>Qualité JPEG <input type="number" min="40" max="100" name="qualite_photos" value="{{ cfg.photos.qualite }}"></label>
|
|
<label class="choix"><input type="checkbox" name="positions_deduites" {{ 'checked' if cfg.photos.positions_deduites }}>
|
|
Placer les photos sans GPS d'après l'heure et la trace (à 5 minutes près)</label>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend>Journées</legend>
|
|
<label>Fuseau horaire <input name="fuseau" value="{{ cfg.journees.fuseau }}" placeholder="Europe/Paris"></label>
|
|
<label>Heure de changement de jour <input type="number" min="0" max="12" name="coupure_heure" value="{{ cfg.journees.coupure_heure }}">
|
|
<span class="aide">Une étape finie après minuit mais avant cette heure reste sur la veille.</span></label>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend>Carte globale</legend>
|
|
<label>Cartes Google My Maps à reprendre (une adresse par ligne)
|
|
<textarea name="mymaps" rows="3">{{ cfg.carte_globale.mymaps|join("\n") }}</textarea>
|
|
<span class="aide">Leurs tracés sont récupérés une fois et ajoutés à la carte de l'accueil, sur fond OpenStreetMap.</span></label>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>Administration depuis le site</legend>
|
|
<label>Adresse de l'interface <input name="administration" value="{{ cfg.administration.adresse }}" placeholder="/admin/">
|
|
<span class="aide">Si elle est remplie, l'accueil du site affiche un bouton « Connexion » vers cette adresse.
|
|
L'interface doit alors tourner sur le serveur du site (<code>rtg interface --proxy --prefixe /admin</code>), derrière le serveur web en HTTPS : voir le README.</span></label>
|
|
</fieldset>
|
|
<p><button class="principal">Enregistrer</button> <span id="retour-reglages"></span></p>
|
|
</form>
|
|
|
|
<h2>Système</h2>
|
|
<div hx-get="{{ base }}/systeme" hx-trigger="load"><p class="chargement">Vérification des outils…</p></div>
|
|
{% endblock %}
|