diff --git a/android-client/web/app.html b/android-client/web/app.html index 25e2db6..bcfd80e 100644 --- a/android-client/web/app.html +++ b/android-client/web/app.html @@ -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. diff --git a/mainApk.pas b/mainApk.pas index e84491c..911391b 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -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()');