You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"remote.mode.resume":"Reprendre (garde le cache)","remote.mode.restart":"Relancer depuis zéro",
46
46
"tip.remotemode":"Que faire si la session existe déjà : « Se rebrancher » surveille le run en cours ou déjà terminé sans rien relancer ; « Reprendre » relance le même calcul dans la session en gardant les dalles déjà en cache (ne retélécharge que celles manquantes ou en erreur) ; « Relancer depuis zéro » archive l'état existant puis redémarre tout le calcul, cache compris.",
"tip.remotesync":"Quels fichiers rapatrier localement au fur et à mesure : tout (défaut), seulement la carte finale (mbtiles/rmap/sqlitedb) ou seulement les ombrages intermédiaires (.tif).",
47
50
"remote.block":"Bloc","tip.remoteblock":"Répartit une zone géographique sur plusieurs VM : chaque machine traite un bloc différent (LiDAR uniquement). Laisser vide pour tout traiter sur cette VM.",
48
51
"remote.hint.cli":"Lance ce calcul dans tmux sur la VM et resynchronise progressivement les résultats (log distant inclus). « Arrêter » ne coupe que la surveillance locale, pas le calcul distant.",
49
52
"remote.hint.gui":"Installe un bureau XFCE + RDP sur la VM puis ouvre le client RDP. Les autres paramètres de ce formulaire sont ignorés.",
"remote.mode.resume":"Resume (keep cache)","remote.mode.restart":"Restart from scratch",
202
205
"tip.remotemode":"What to do if the session already exists: “Reattach only” just monitors the run in progress or already finished, without relaunching anything; “Resume” reruns the same job in the same session keeping already-cached tiles (only re-downloads missing or failed ones); “Restart from scratch” archives the existing state then restarts the whole job, cache included.",
"tip.remotesync":"Which files to sync back locally as they are produced: everything (default), only the final map (mbtiles/rmap/sqlitedb), or only the intermediate shadings (.tif).",
203
209
"remote.block":"Block","tip.remoteblock":"Splits a geographic area across several VMs: each machine processes a different block (LiDAR only). Leave empty to process the whole area on this VM.",
204
210
"remote.hint.cli":"Runs this job in tmux on the VM and progressively syncs results back (remote log included). Stop only cancels local monitoring, not the remote job.",
205
211
"remote.hint.gui":"Installs an XFCE + RDP desktop on the VM then opens the RDP client. The rest of this form is ignored.",
@@ -376,7 +382,7 @@ function setLang(code, persist){
376
382
}
377
383
378
384
// ── Panneau de log ───────────────────────────────────────────────────────────
379
-
functionajouterLigneLog(text,tag){
385
+
functionajouterLigneLog(text,tag,deferScroll){
380
386
constc=document.getElementById('log-content');
381
387
if(!c)return;
382
388
// Sémantique \r du terminal : la ligne de progression temporaire (barres
@@ -388,29 +394,41 @@ function ajouterLigneLog(text, tag) {
388
394
span.className='log-'+(tag||'ok');
389
395
span.textContent=text;
390
396
c.appendChild(span);
391
-
// Auto-scroll si l'utilisateur est déjà en bas (à 30 px près)
397
+
// deferScroll=true : appelant en boucle sur un lot (cf. poll_log) — le
398
+
// scroll/purge est fait une seule fois après la boucle via finaliserLog(),
399
+
// pas à chaque ligne (chaque lecture de scrollHeight force un reflow
400
+
// synchrone ; sur un burst de plusieurs milliers de lignes d'un coup,
401
+
// reconnexion VM notamment, ça figeait le panneau, bug vécu 2026-08-05).
402
+
if(!deferScroll)finaliserLog();
403
+
}
404
+
405
+
// Auto-scroll (si déjà en bas, 30 px près) + purge (~5000 lignes, évite de
406
+
// saturer le DOM sur les longs runs). Appelé une seule fois par lot de
407
+
// poll_log plutôt qu'à chaque ligne/repaint de progression : cf.
data-i18n-title="tip.remotesync" title="Quels fichiers rapatrier localement au fur et à mesure : tout (défaut), seulement la carte finale (mbtiles/rmap/sqlitedb) ou seulement les ombrages intermédiaires (.tif).">Résultats</label>
data-i18n-title="tip.remoteblock" title="Répartit une zone géographique sur plusieurs VM : chaque machine traite un bloc différent (LiDAR uniquement). Laisser vide pour tout traiter sur cette VM.">Bloc</label>
0 commit comments