From 2e84c8a7f823df2cc28fa971930939642f391758 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Sat, 22 Aug 2026 00:23:34 +0100 Subject: [PATCH] fix(android): the busy veil was switching the whole page off An empty dark blue screen, which is the window's own background with nothing drawn on it. The cause is one name used twice: the veil element carries class `busy`, and the state was put on the body under the same name - so `.busy { display: none }` applied to the BODY as well, and the page vanished the moment any operation started. The state is now called `is-busy`, which nothing else carries. Checked the other body states - typing, selecting, searching, on-list, on-detail - none of them names an element, so none has the same trap. --- android-client/web/app.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/android-client/web/app.html b/android-client/web/app.html index 6c05686..ad1bf0b 100644 --- a/android-client/web/app.html +++ b/android-client/web/app.html @@ -288,10 +288,15 @@ bougeait : supprimer ou dupliquer prend une a deux secondes - le trajet du conteneur - et l'ecran restait identique, comme si l'appui n'avait pas pris. Le voile empeche aussi le second appui, qui n'attendrait pas mieux. */ + /* DEUX NOMS DIFFERENTS, ET C'EST LE FOND DU PIEGE. En appelant `busy` a la + fois la classe du voile et l'etat du corps, la regle ci-dessous + s'appliquait AUSSI au corps : `display: none` sur le body, donc la page + entiere effacee et le bleu de la fenetre a nu. L'etat porte donc un nom + que rien d'autre ne porte. */ .busy { position: fixed; inset: 0; z-index: 90; display: none; align-items: center; justify-content: center; background: rgba(0, 0, 0, .38); } - body.busy .busy { display: flex; } + body.is-busy .busy { display: flex; } .busy > div { background: var(--bg-top); border-radius: var(--radius); padding: 20px 26px; display: flex; align-items: center; gap: 12px; font-size: 15px; } @@ -1388,7 +1393,7 @@ var PM = { setBusy: function (on) { if (on) document.getElementById('busy').firstChild.innerHTML = ico('loader', 'Working') + 'Please wait...'; - document.body.classList.toggle('busy', !!on); + document.body.classList.toggle('is-busy', !!on); }, back: function () { if (view === 'detail') goList(); }, /// La touche retour annule la selection avant de verrouiller le coffre.