diff --git a/android-client/web/app.html b/android-client/web/app.html
index 52f962d..bfd8405 100644
--- a/android-client/web/app.html
+++ b/android-client/web/app.html
@@ -1093,8 +1093,6 @@ function renderDetail(d) {
+ (r.a === undefined ? ''
: '')
- + (r.e ? '' : '')
+ '';
}
document.getElementById('fields').innerHTML = html;
@@ -1136,43 +1134,6 @@ document.getElementById('fields').addEventListener('click', function (ev) {
if (copy === 'totp') { send('copy?f=totp'); return; }
if (copy === 'row') { send('copy?f=row&k=' + t.getAttribute('data-k')); return; }
- var edit = t.getAttribute('data-edit');
- if (edit !== null) { openEditor(edit); return; }
- if (t.getAttribute('data-editshow') !== null) {
- // Masque par defaut, revelable a la demande : on tape un mot de passe
- // qu'on ne peut relire nulle part ailleurs, mais il n'a pas a rester
- // expose a l'ecran pendant qu'on cherche le bouton.
- var iv = document.getElementById('editval');
- var hid = iv.type === 'password';
- iv.type = hid ? 'text' : 'password';
- t.innerHTML = ico(hid ? 'eyeOff' : 'eye', hid ? 'Hide' : 'Show');
- return;
- }
- if (t.getAttribute('data-editcancel') !== null) { renderDetail(lastDetail); return; }
- if (t.getAttribute('data-editsave') !== null) {
- var input = document.getElementById('editval');
- if (!input) return;
- // VIDER EST LEGITIME sur un site ou un identifiant - pas sur un mot de
- // passe, ou ce serait presque toujours une fausse manoeuvre. Le refus se
- // dit, sinon le bouton semble ne pas prendre l'appui.
- if (!input.value && editField === 'password') {
- toast('An empty password is not saved');
- return;
- }
- // DIRE QUE CA TRAVAILLE. L'enregistrement dechiffre, rechiffre et publie :
- // une a deux secondes pendant lesquelles rien ne bougeait, et le bouton
- // semblait n'avoir pas pris l'appui. La coche cede la place a un arc qui
- // tourne - immobile, elle laisserait croire que c'est fini.
- t.innerHTML = ico('loader', 'Saving');
- t.classList.add('spin');
- t.disabled = true;
- var cancel = document.querySelector('[data-editcancel]');
- if (cancel) cancel.disabled = true;
- input.disabled = true;
- send('setfield?f=' + encodeURIComponent(editField)
- + '&v=' + encodeURIComponent(input.value));
- return;
- }
});
/// LE DOSSIER SE CHOISIT, il ne se tape pas.
@@ -1184,40 +1145,22 @@ document.getElementById('fields').addEventListener('click', function (ev) {
///
/// 'All' est ajoute d'office : c'est le dossier par defaut du poste, et il ne
/// figure pas toujours dans la liste.
-function editorControl(k) {
- var val = detailRows[k].v;
- var style = ' style="margin:0;flex:1;min-width:0;width:auto"';
- // UNE ZONE DE TEXTE POUR CE QUI TIENT SUR PLUSIEURS LIGNES. Un
- // applique la sanitisation de HTML et retire les retours a la ligne en
- // silence : le corps d'une note y perdait sa mise en forme, et la perte
- // partait au depot a l'enregistrement suivant.
- if (detailRows[k].m)
- return '';
- if (editField !== 'folder')
- return '';
-
- var names = ['All'], i;
+/// La liste des dossiers du coffre, pour le champ 'folder' du formulaire.
+/// Le dossier courant y est ajoute s'il n'y figure plus - renomme ailleurs, ou
+/// venu d'un import -, sinon l'ouvrir suffirait a le remplacer en silence.
+function folderSelect(val) {
+ var names = ['All'], i, html;
for (i = 0; i < folders.length; i++)
if (folders[i] && names.indexOf(folders[i]) < 0) names.push(folders[i]);
- // Le dossier courant peut ne plus figurer dans la liste - il a ete renomme
- // ailleurs, ou l'entree vient d'un import. Le proposer quand meme evite de
- // le remplacer silencieusement en ouvrant simplement l'editeur.
if (val && names.indexOf(val) < 0) names.push(val);
-
- var html = '