Project

General

Profile

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

Added by Mikaël Ates over 10 years ago. Updated over 9 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
Jérôme Schneider
Start date:
12 April 2013
Due date:
% Done:

100%

Estimated time:
Patch proposed:
Yes
Planning:

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

Revision bbf89bd4 (diff)
Added by Jérôme Schneider over 9 years ago

dossiers: show an alert when closing without saving

Closes #2740

Revision f93684a4 (diff)
Added by Jérôme Schneider over 9 years ago

calebasse.dossiers.js: put a warning if an error occured

Closes #2740

Revision 83fdead5 (diff)
Added by Serghei Mihai over 9 years ago

dossiers: alert raised when comment unsaved in "Adresses/contacts" tab

Closes #2740

History

#1

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)
#2

Updated by Mikaël Ates over 9 years ago

  • Target version set to 1.2 Amélioration du dossier patient
#3

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
#4

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
#5

Updated by Jérôme Schneider over 9 years ago

  • File deleted (0001-dossiers-show-an-alert-when-closing-without-saving.patch)
#7

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.

#8

Updated by Jérôme Schneider over 9 years ago

Ce nouveau patch corrige un bug. L'auto submit ne fonctionnait plus correctement avec l'ancien.

#9

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.

#10

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.

#11

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.

#12

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.

#13

Updated by Serghei Mihai over 9 years ago

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

#14

Updated by Serghei Mihai over 9 years ago

Appliqué par commit calebasse|commit:83fdead5e5dde28acf6ea0e75519632e1f6478f6.

#15

Updated by Mikaël Ates over 9 years ago

  • Status changed from Résolu (à déployer) to Fermé

Ok

Also available in: Atom PDF