fix(android): le message se voit dans les reglages, et le code s'y cache coffre ferme

Le toast n'avait pas de z-index : il se peignait DERRIERE l'ecran des
reglages, qui est a 80. "Unlock code set" partait bien, mais sous la
page, et ne se decouvrait qu'en sortant - quand il ne s'etait pas deja
eteint. Un message qui ne se voit pas la ou on l'a provoque ne sert a
rien.

La section du code de deverrouillage ne parait plus que coffre ouvert.
Poser comme retirer exigent le clair en main : coffre ferme, les deux ne
pouvaient que refuser, et proposer une action qui refuse toujours vaut
moins que ne rien proposer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-28 17:36:37 +01:00
parent d428a6fc7f
commit b3f725137e
+18 -1
View File
@@ -340,8 +340,13 @@
[hidden] { display: none !important; } [hidden] { display: none !important; }
/* AU-DESSUS DES VOILES. Sans z-index, le message se peignait DERRIERE
l'ecran des reglages (80) : "Unlock code set" partait bien, mais sous la
page, et ne se decouvrait qu'en sortant - quand il ne s'etait pas deja
eteint. Un message qui ne se voit pas la ou on l'a provoque ne sert a
rien. Au-dessus du voile d'attente (90) aussi, pour la meme raison. */
.toast { .toast {
position: fixed; left: 12px; right: 12px; bottom: 14px; position: fixed; left: 12px; right: 12px; bottom: 14px; z-index: 100;
background: rgba(10,20,40,.92); color: var(--text); background: rgba(10,20,40,.92); color: var(--text);
border-radius: var(--radius-s); padding: 12px 16px; font-size: 14px; border-radius: var(--radius-s); padding: 12px 16px; font-size: 14px;
text-align: center; opacity: 0; transition: opacity .2s; text-align: center; opacity: 0; transition: opacity .2s;
@@ -557,6 +562,10 @@
password that opens a vault created on this phone - that one is asked for password that opens a vault created on this phone - that one is asked for
on the home screen.</div> on the home screen.</div>
<!-- COFFRE FERME, SECTION CACHEE. Poser comme retirer un code exigent le
clair en main : les deux ne pourraient que refuser, et proposer une
action qui refuse toujours vaut moins que ne rien proposer. -->
<div id="secCode" hidden>
<h2>Unlock code</h2> <h2>Unlock code</h2>
<div class="in-wrap"> <div class="in-wrap">
<input class="field-in" id="sPinNew" placeholder="new unlock code or password" <input class="field-in" id="sPinNew" placeholder="new unlock code or password"
@@ -573,6 +582,7 @@
digits or a full password - a longer one is harder to guess, and it is digits or a full password - a longer one is harder to guess, and it is
asked for only when the vault opens. Removing it leaves the vault asked for only when the vault opens. Removing it leaves the vault
readable by anyone holding the phone unlocked.</div> readable by anyone holding the phone unlocked.</div>
</div>
<h2>Diagnostics</h2> <h2>Diagnostics</h2>
<button class="btn wide" id="sLog">Show the log</button> <button class="btn wide" id="sLog">Show the log</button>
@@ -675,6 +685,10 @@ var authMode = 'open';
// dernier ecrasait le premier. Chacun met a jour sa variable, la fonction // dernier ecrasait le premier. Chacun met a jour sa variable, la fonction
// tranche. // tranche.
var pinNeeded = false; var pinNeeded = false;
// COFFRE OUVERT OU NON, du point de vue de la page. Delphi le dit sans le dire :
// setVault n'arrive qu'avec un coffre en main, et wipe accompagne chaque
// verrouillage. Deux points, et ils suffisent.
var vaultOpen = false;
// L'ACCUEIL SE LIT DE HAUT EN BAS : aller chercher le coffre, regler, et creer // L'ACCUEIL SE LIT DE HAUT EN BAS : aller chercher le coffre, regler, et creer
// en dernier - c'est l'ordre des frequences, pas celui du code. La creation // en dernier - c'est l'ordre des frequences, pas celui du code. La creation
// etait en tete parce que son bloc etait ecrit en premier dans la page. // etait en tete parce que son bloc etait ecrit en premier dans la page.
@@ -1496,6 +1510,7 @@ function openSettings() {
document.getElementById('sTok').value = elTok.value; document.getElementById('sTok').value = elTok.value;
document.getElementById('sPwd').value = elPwd.value; document.getElementById('sPwd').value = elPwd.value;
document.getElementById('sPinNew').value = ''; document.getElementById('sPinNew').value = '';
document.getElementById('secCode').hidden = !vaultOpen;
showLog(false); showLog(false);
document.body.classList.add('on-settings'); document.body.classList.add('on-settings');
send('state?view=settings'); send('state?view=settings');
@@ -1578,6 +1593,7 @@ document.getElementById('back').addEventListener('click', goList);
// --- appele par Delphi ----------------------------------------------------- // --- appele par Delphi -----------------------------------------------------
var PM = { var PM = {
setVault: function (json) { setVault: function (json) {
vaultOpen = true;
var d = JSON.parse(json); var d = JSON.parse(json);
entries = d.entries || []; entries = d.entries || [];
folders = d.folders || []; folders = d.folders || [];
@@ -1782,6 +1798,7 @@ var PM = {
// Efface tout ce qui est en clair. Appele au passage en arriere-plan et au // Efface tout ce qui est en clair. Appele au passage en arriere-plan et au
// verrouillage : le tas JS n'est pas efface par le masquage de la vue. // verrouillage : le tas JS n'est pas efface par le masquage de la vue.
wipe: function () { wipe: function () {
vaultOpen = false;
entries = []; folders = []; detailRows = []; entries = []; folders = []; detailRows = [];
document.getElementById('rows').innerHTML = ''; document.getElementById('rows').innerHTML = '';
document.getElementById('fields').innerHTML = ''; document.getElementById('fields').innerHTML = '';