Bug #2740
Lorsque l'on a modifié un champs dans le dossier sans enregistrer et que l'on quitte la page ou l'onglet, montrer une alerte
100%
Description
Pour éviter les opublis d'enregistrements très fréquents. Les onglets concernés sont 'général', 'fiches administrative' et 'données à caractère médical'.
Files
Associated revisions
calebasse.dossiers.js: put a warning if an error occured
Closes #2740
dossiers: alert raised when comment unsaved in "Adresses/contacts" tab
Closes #2740
History
Updated by Mikaël Ates over 10 years ago
- Project changed from APS42 to Calebasse
- Subject changed from Lorsque l'on a modifier un champs dans le dossier sans enregistrer et que l'on quitte la page ou l'onglet, montrer une alerte to Lorsque l'on a modifié un champs dans le dossier sans enregistrer et que l'on quitte la page ou l'onglet, montrer une alerte
- Target version deleted (
0.9)
Updated by Mikaël Ates over 9 years ago
- Target version set to 1.2 Amélioration du dossier patient
Updated by Jérôme Schneider over 9 years ago
- Status changed from Nouveau to En cours
- Assignee set to Jérôme Schneider
- Patch proposed set to No
Updated by Jérôme Schneider over 9 years ago
- File 0001-dossiers-show-an-alert-when-closing-without-saving.patch added
- % Done changed from 0 to 60
- Patch proposed changed from No to Yes
Updated by Jérôme Schneider over 9 years ago
- File deleted (
0001-dossiers-show-an-alert-when-closing-without-saving.patch)
Updated by Jérôme Schneider over 9 years ago
Updated by Benjamin Dauvergne over 9 years ago
Juste pour la cohérence, si on utilise .on()
, je serai pour l'utiliser systématiquement et ne plus utiliser toutes les méthodes directes de mise en place de handler comme .click()
et .change()
, en plus à relire le .on()
est plus explicite alors que .change()
ou .click()
peuvent être lu comme des verbes, et sans argument il me semble aussi que ça provoque un .trigger()
(mais je n'en suis plus sûr) ce que .on()
ne fait pas.
Quand à l'utilisation de beforeunload
, apparemment renvoyer une chaîne ne marche que sur webkit: https://developer.mozilla.org/fr/docs/DOM/window.onbeforeunload (ils disent Safari mais pour moi ça veut dire webkit)
Sur IE et Firefox il faudrait faire e.returnValue = '...'
.
Idéalement il faudrait comme pour les actes vérifier que ce qui a vraiment changé, à partir de jQuery 1.6 il est possible de récupérer cette valeur initiale avec $e.attr('value')
ou $e.attr('checked') != undefined
pour les checkbox et boutons radios.
Updated by Jérôme Schneider over 9 years ago
- File 0001-dossiers-show-an-alert-when-closing-without-saving.patch 0001-dossiers-show-an-alert-when-closing-without-saving.patch added
Ce nouveau patch corrige un bug. L'auto submit ne fonctionnait plus correctement avec l'ancien.
Updated by Jérôme Schneider over 9 years ago
Benjamin Dauvergne a écrit :
Juste pour la cohérence, si on utilise
.on()
, je serai pour l'utiliser systématiquement et ne plus utiliser toutes les méthodes directes de mise en place de handler comme.click()
et.change()
, en plus à relire le.on()
est plus explicite alors que.change()
ou.click()
peuvent être lu comme des verbes, et sans argument il me semble aussi que ça provoque un.trigger()
(mais je n'en suis plus sûr) ce que.on()
ne fait pas.
C'est modifié.
Quand à l'utilisation de
beforeunload
, apparemment renvoyer une chaîne ne marche que sur webkit: https://developer.mozilla.org/fr/docs/DOM/window.onbeforeunload (ils disent Safari mais pour moi ça veut dire webkit)Sur IE et Firefox il faudrait faire
e.returnValue = '...'
.
Sous Firefox ça semble beaucoup plus tordu que ça : https://bugzilla.mozilla.org/show_bug.cgi?id=588292
J'ai essayé le coup du returnValue mais le comportement reste le même. En gros Firefox n'en a rien a foutre du beforeunload il gère ça à sa sauce et ça me convient dans le cas présent.
Pour IE je n'ai pas testé.
Tous les exemples que j'ai trouvé sur jquery avec un beforeunload ne font que renvoyer une string. Pour le moment je laisse comme ça.
Idéalement il faudrait comme pour les actes vérifier que ce qui a vraiment changé, à partir de jQuery 1.6 il est possible de récupérer cette valeur initiale avec
$e.attr('value')
ou$e.attr('checked') != undefined
pour les checkbox et boutons radios.
C'est un peu lourd à gérer pour une plus value qui me semble faible. Dans l'immédiat je pense qu'on peut s'en passer.
Updated by Jérôme Schneider over 9 years ago
- Status changed from En cours to Résolu (à déployer)
- % Done changed from 60 to 100
Appliqué par commit calebasse|commit:bbf89bd4bd4379aa62eb56e7727cc56a3d4e173e.
Updated by Mikaël Ates over 9 years ago
- Status changed from Résolu (à déployer) to En cours
- % Done changed from 100 to 50
Lorsqu'il y a une erreur de saisie, l'erreur est affiché à côté du champs en erreur et le formulaire n'est pas sauvegardé, cependant lorsque l'on quitte l'onglet l'alerte n'est pas affichée.
Updated by Jérôme Schneider over 9 years ago
- Status changed from En cours to Résolu (à déployer)
- % Done changed from 50 to 100
Appliqué par commit calebasse|commit:f93684a477fd34b00442df37594e6676d0884ade.
Updated by Serghei Mihai over 9 years ago
- File 0001-dossiers-alert-raised-when-comment-unsaved-in-Adress.patch 0001-dossiers-alert-raised-when-comment-unsaved-in-Adress.patch added
Quand on modifie le commentaire dans l'onglet "Adresses/contacts" et on change d'onglet sans sauvegarder, l'alerte n'est pas levée.
Voici le patch appelant la fonction JS en question
Updated by Serghei Mihai over 9 years ago
Appliqué par commit calebasse|commit:83fdead5e5dde28acf6ea0e75519632e1f6478f6.
dossiers: show an alert when closing without saving
Closes #2740