Retire l'ecran de chargement plein ecran au demarrage d'ObsiGate #53

Merged
bruno merged 3 commits from fix/retrait-splash-demarrage into main 2026-10-28 18:22:25 -04:00
Owner

Defaut 2 — splash de demarrage a retirer.

Cause : frontend/index.html portait un ecran plein ecran #boot-splash (icone livre, titre ObsiGate, spinner, Demarrage...), son CSS inline (lignes 50-76) dont la regle body:not(.app-booted) > * { display: none !important } masquait tout le reste de la page, et un script de pilotage (lignes 241-266, signal __OBSIGATE_BOOTED / __obsigateBootReady depuis frontend/js/app.js, repli a 10 s si style.css charge).

Audit des autres applications (lecture seule de leurs gabarits d'entree, main) : TikTak app/templates/base.html, Kanbante app/templates/board.html et dashboard.html, Flowdeck app/templates/base.html, console Spark app/console/index.html — aucun splash plein ecran au demarrage. Seuls des indicateurs internes existent (Chargement... dans les listes de la console, spinner de synchronisation Flowdeck), qui ne sont pas vises ici.

Correctif : suppression complete et coherente — CSS boot + div #boot-splash + script de pilotage dans index.html (6082 -> 6017 lignes), signal de boot dans js/app.js (DOMContentLoaded simplifie : await init(); Sync.init(); 141 -> 133 lignes), commentaire defer ajuste. Aucun ecran de remplacement : le contenu apparait des qu'il est pret, comme dans les autres applications. Securite anti-ecran-blanc : la regle de masquage global est supprimee avec le splash (un retrait partiel — div seule — aurait laisse tout le body cache) ; un chargement lent affiche le squelette HTML servi, pas un ecran bloque, et aucun etat d'attente minimal brandé n'est techniquement indispensable car les vues ont leurs propres indicateurs.

Intacts, volontairement : ecran de connexion #login-screen, barre #search-progress-bar, conteneur #app, populateVersions, init()/Sync.init().

Tests : tests/test_sans_splash_demarrage.py (nouveau, 3 tests : 0 marqueur splash dans index.html et js/app.js, pas de masquage global, boot JS et indicateurs internes intacts) + verification node --check de js/app.js + analyse HTML (5 erreurs d'analyse identiques avant/apres, preexistantes). Grep boot-splash/app-booted : 0 dans index.html et app.js corriges ; 0 dans les autres gabarits ObsiGate avant comme apres.

Delta a connaitre : l'ancien commentaire justifiait le splash par un FOUC de 3-10 s sur desktop (page embarquee sans /static). Apres retrait, le premier rendu desktop peut montrer le squelette brut le temps du chargement — c'est le comportement demande (homogeneite avec les autres apps), a valider en deploye.

Non fait ici, volontairement : aucun merge, aucune publication, aucun bump de version, aucun changement d'etat d'issue. A valider en deploye par Bruno : demarrage ObsiGate sans splash, sans ecran blanc bloque, y compris en chargement lent et sur desktop.

Defaut 2 — splash de demarrage a retirer. Cause : frontend/index.html portait un ecran plein ecran #boot-splash (icone livre, titre ObsiGate, spinner, Demarrage...), son CSS inline (lignes 50-76) dont la regle body:not(.app-booted) > * { display: none !important } masquait tout le reste de la page, et un script de pilotage (lignes 241-266, signal __OBSIGATE_BOOTED / __obsigateBootReady depuis frontend/js/app.js, repli a 10 s si style.css charge). Audit des autres applications (lecture seule de leurs gabarits d'entree, main) : TikTak app/templates/base.html, Kanbante app/templates/board.html et dashboard.html, Flowdeck app/templates/base.html, console Spark app/console/index.html — aucun splash plein ecran au demarrage. Seuls des indicateurs internes existent (Chargement... dans les listes de la console, spinner de synchronisation Flowdeck), qui ne sont pas vises ici. Correctif : suppression complete et coherente — CSS boot + div #boot-splash + script de pilotage dans index.html (6082 -> 6017 lignes), signal de boot dans js/app.js (DOMContentLoaded simplifie : await init(); Sync.init(); 141 -> 133 lignes), commentaire defer ajuste. Aucun ecran de remplacement : le contenu apparait des qu'il est pret, comme dans les autres applications. Securite anti-ecran-blanc : la regle de masquage global est supprimee avec le splash (un retrait partiel — div seule — aurait laisse tout le body cache) ; un chargement lent affiche le squelette HTML servi, pas un ecran bloque, et aucun etat d'attente minimal brandé n'est techniquement indispensable car les vues ont leurs propres indicateurs. Intacts, volontairement : ecran de connexion #login-screen, barre #search-progress-bar, conteneur #app, populateVersions, init()/Sync.init(). Tests : tests/test_sans_splash_demarrage.py (nouveau, 3 tests : 0 marqueur splash dans index.html et js/app.js, pas de masquage global, boot JS et indicateurs internes intacts) + verification node --check de js/app.js + analyse HTML (5 erreurs d'analyse identiques avant/apres, preexistantes). Grep boot-splash/app-booted : 0 dans index.html et app.js corriges ; 0 dans les autres gabarits ObsiGate avant comme apres. Delta a connaitre : l'ancien commentaire justifiait le splash par un FOUC de 3-10 s sur desktop (page embarquee sans /static). Apres retrait, le premier rendu desktop peut montrer le squelette brut le temps du chargement — c'est le comportement demande (homogeneite avec les autres apps), a valider en deploye. Non fait ici, volontairement : aucun merge, aucune publication, aucun bump de version, aucun changement d'etat d'issue. A valider en deploye par Bruno : demarrage ObsiGate sans splash, sans ecran blanc bloque, y compris en chargement lent et sur desktop.
bruno added 3 commits 2026-10-28 16:44:24 -04:00
bruno merged commit 515727ab9b into main 2026-10-28 18:22:25 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Projets/ObsiGate#53