Administration native sur le Mac, réencodage sélectif et aide intégrée

- admin.sh : RTG lancé directement sur le Mac (plus de conteneur), nginx
  joint l'interface par host.docker.internal:8765 ; variante conteneur
  conservée (admin-docker.sh, docker-compose-conteneur.yml)
- Compression : réglages lus dans les fichiers (CRF, codec), refaire
  seulement le 1080p ou le 720p, seulement si les réglages ont changé ;
  réglages vidéo propres à chaque voyage ; « Compression actuelle » affichée
- Plus d'arrêt automatique après 2 h d'inactivité (--arret-inactif, 0 par défaut) ;
  arrêt propre qui attend la fin des encodages en cours
- Aide contextuelle dans l'interface (rtg/interface/aide) ; README centré
  sur l'installation et la mise en place
- Cœurs attribués au conteneur détectés (cgroup) et signalés

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
FabriceandClaude Opus 5.5 committed 2026-10-19 05:32:05 +00:00
1 parent b54ae69b19
commit ada3d76f50
38 files changed
+1067 -264

No files matched your search

+23
View File
@@ -83,6 +83,29 @@
});
document.addEventListener("keydown", e => { if (e.key === "Escape") fermer(); });
// --- Aide contextuelle (panneau à droite) --------------------------------
function aideOuverte(oui) {
const a = document.getElementById("aide");
if (!a) return;
a.hidden = !oui;
document.body.classList.toggle("aide-ouverte", oui);
}
function fermerAide() { aideOuverte(false); }
document.addEventListener("click", e => {
if (e.target.closest("[data-ouvrir-aide]")) aideOuverte(true);
if (e.target.closest("[data-fermer-aide]")) fermerAide();
});
// Panneau ouvert : il suit l'onglet affiché.
document.addEventListener("rtg:onglet", e => {
const a = document.getElementById("aide");
const b = document.querySelector("#onglet-" + e.detail + " [data-ouvrir-aide]");
if (a && !a.hidden && b && window.htmx) htmx.ajax("GET", b.getAttribute("hx-get"), "#aide-contenu");
});
document.addEventListener("keydown", e => { if (e.key === "Escape") fermerAide(); });
document.addEventListener("htmx:afterSwap", e => {
if (e.detail.target.id === "aide-contenu") e.detail.target.parentElement.scrollTop = 0;
});
// Les messages (erreurs) s'effacent d'eux-mêmes.
document.addEventListener("htmx:afterSwap", e => {
if (e.detail.target.id === "messages") {