feat(android): creer une entree et son dossier d'un seul geste

"+ new folder" n'existait qu'a l'edition. Creer une entree ET son dossier
demandait donc trois gestes - creer, rouvrir, changer le dossier - pour
ce que le meme controle sait faire ailleurs en un seul. L'asymetrie ne se
voyait qu'en s'en servant.

Deux cas que le chemin de l'edition ne posait pas : un champ laisse vide
et le marqueur interne du "+ new folder" retombent tous deux sur All -
sans quoi valider sans rien taper aurait envoye au coffre un nom de
dossier fait d'un caractere de controle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-28 22:54:46 +01:00
parent 363b934e8a
commit 4fda63ec30
+26 -1
View File
@@ -1144,6 +1144,22 @@ document.getElementById('fields').addEventListener('change', function (ev) {
input.focus();
});
// Le meme echange sur le formulaire de creation. Delegue sur #fields comme
// ci-dessus : les deux controles y vivent, seul leur identifiant differe.
document.getElementById('fields').addEventListener('change', function (ev) {
if (ev.target.id !== 'nFolder' || ev.target.value !== NEW_FOLDER) return;
var line = ev.target.parentNode;
var input = document.createElement('input');
input.className = 'field-in';
input.id = 'nFolder';
input.setAttribute('placeholder', 'folder name');
input.setAttribute('autocomplete', 'off');
input.setAttribute('autocapitalize', 'none');
input.style.cssText = 'margin:0;flex:1;min-width:0;width:auto';
line.replaceChild(input, ev.target);
input.focus();
});
// EDITEUR EN PLACE, pas window.prompt : une invite JavaScript demande au
// moteur un WebChromeClient que FMX ne fournit pas, et prompt() rend alors
// null sans un mot - le bouton semblerait ne rien faire.
@@ -1289,6 +1305,11 @@ function newFolderField() {
+ ' style="margin:0;flex:1;min-width:0;width:auto">';
for (i = 0; i < names.length; i++)
html += '<option value="' + esc(names[i]) + '">' + esc(names[i]) + '</option>';
// LA MEME OPTION QU'A L'EDITION, et il a fallu la reclamer pour s'en rendre
// compte : creer une entree ET son dossier d'un coup etait impossible. Il
// fallait creer l'entree, la rouvrir, changer son dossier - trois gestes pour
// ce que le meme controle sait faire ailleurs en un seul.
html += '<option value="' + NEW_FOLDER + '">+ new folder</option>';
return html + '</select></div></div>';
}
@@ -1382,7 +1403,11 @@ document.getElementById('fields').addEventListener('click', function (ev) {
var v = function (id) { return document.getElementById(id).value.trim(); };
ev.target.disabled = true;
var fold = document.getElementById('nFolder');
send('newentry?d=' + encodeURIComponent(fold ? fold.value : 'All')
// Le champ libre peut rester vide, et le marqueur du "+ new folder" ne doit
// jamais partir tel quel : les deux retombent sur All.
var foldName = fold ? fold.value.trim() : '';
if (foldName === '' || foldName === NEW_FOLDER) foldName = 'All';
send('newentry?d=' + encodeURIComponent(foldName)
+ '&t=' + encodeURIComponent(v('nTitle'))
+ '&s=' + encodeURIComponent(v('nSite'))
+ '&u=' + encodeURIComponent(v('nUser'))