fix(apk): retour depuis le formulaire = revenir a l'entree, pas a la liste
Le formulaire se declare comme une vue ('state?view=edit') : la fleche de
l'en-tete et la touche retour du telephone le referment d'abord.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1565,6 +1565,8 @@ function openEditEntry() {
|
||||
renderDetail(lastDetail);
|
||||
});
|
||||
document.getElementById('eSave').addEventListener('click', saveEditEntry);
|
||||
view = 'edit';
|
||||
send('state?view=edit');
|
||||
if (editAgain) {
|
||||
var ins = document.querySelectorAll('#fields [data-ef]'), i, f;
|
||||
for (i = 0; i < ins.length; i++) {
|
||||
@@ -1957,7 +1959,13 @@ function goList() {
|
||||
document.getElementById('fields').innerHTML = '';
|
||||
send('state?view=list');
|
||||
}
|
||||
document.getElementById('back').addEventListener('click', goList);
|
||||
// LA FLECHE REFERME D'ABORD LE FORMULAIRE. Elle ramenait a la liste, donc une
|
||||
// modification en cours disparaissait sans qu'on ait vu l'entree.
|
||||
document.getElementById('back').addEventListener('click', function () {
|
||||
if (view === 'edit') { renderDetail(lastDetail); return; }
|
||||
goList();
|
||||
});
|
||||
|
||||
|
||||
// --- appele par Delphi -----------------------------------------------------
|
||||
var PM = {
|
||||
@@ -2202,6 +2210,9 @@ var PM = {
|
||||
document.body.classList.toggle('is-busy', !!on);
|
||||
},
|
||||
back: function () { if (view === 'detail') goList(); },
|
||||
// Touche retour du telephone pendant une modification : on revient a
|
||||
// l'entree, pas a la liste.
|
||||
cancelEdit: function () { renderDetail(lastDetail); },
|
||||
/// La touche retour annule la selection avant de verrouiller le coffre.
|
||||
/// Sans cela, un geste d'annulation fermait le coffre - le contraire de ce
|
||||
/// qu'il veut dire.
|
||||
|
||||
@@ -720,6 +720,15 @@ begin
|
||||
FWebView := 'list';
|
||||
Key := 0;
|
||||
end
|
||||
// LE FORMULAIRE D'ABORD, l'entree ensuite. Il occupe la meme vue que le
|
||||
// detail, mais il se referme sur lui - sinon une modification en cours
|
||||
// sautait d'un coup jusqu'a la liste.
|
||||
else if FWebView = 'edit' then
|
||||
begin
|
||||
WebCall('PM.cancelEdit()');
|
||||
FWebView := 'detail';
|
||||
Key := 0;
|
||||
end
|
||||
else if FWebView = 'detail' then
|
||||
begin
|
||||
WebCall('PM.back()');
|
||||
|
||||
Reference in New Issue
Block a user