Ticket #351 (closed new feature: fixed)

Opened 1 year ago

Last modified 2 months ago

jForms : connaitre les champs modifiés

Reported by: doms Assigned to: laurentj
Priority: normal Milestone: Jelix 1.1 beta 1
Component: jelix:forms Version: 1.0 beta 3.1
Severity: minor Keywords:
Cc: Php version:
Review: Hosting Provider:
Documentation needed: 0 Blocking:

Description

Ce ticket fait suite à une discussion du forum :http://jelix.org/forums/read.php?5,1543

L'idée principale est de pouvoir comparer les données d'un formulaire reçu avec un formulaire déjà enregistré. Le besoin qui a initié la discussion sur le forum et ce ticket se situe au niveau de la modification d'un élément déjà existant (le U de CRUD). On peut vérifier par exemple que les données du formulaire reçu sont différentes de celle du formulaire d'origine, totalement ou bien en partie.

À l'heure actuelle pour faire cela, il faut extraire les données du formulaire initial avec getDatas() et les stocker dans une structure de données : un tableau convient parfaitement. Puisque les méthodes de jForms fournissent des références aux objets, il n'est pas possible de stocker directement un objet dans une variable formulairePrecedent et de comparer les données de cet objet à celle du formulaire reçu.

Une solution pourrait être de créer un formulaire clone du formulaire courant (clone dans le sens PHP). Ainsi ce formulaire serait insensible aux modifications du formulaire original. Un jeu de méthodes est associé à ce clone : création, suppression, mise à jour, comparaison de toutes les données, comparaison d'une liste de données...

Change History

11/27/07 14:04:53 changed by laurentj

  • severity changed from normal to minor.
  • summary changed from jForms : comparaison des données d'un formulaire saisi avec un formulaire existant to jForms : connaitre les champs modifiés.

11/27/07 14:13:35 changed by laurentj

Ce que tu veux, c'est savoir les champs modifiés. Ta solution proposée, celle de stocker deux fois le formulaire n'est franchement pas efficace en terme de mémoire.

Il suffit juste d'implémenter un boolean, pour chaque contrôle, qui indique si la valeur a été modifiée ou pas. Et ce booléen serait renseigné par jforms lors de l'assignation des valeurs reçues.

11/27/07 14:18:32 changed by doms

Savoir quels champs ont été modifiés est une des utilisations possibles. L'utilisation de booléen est une bonne solution.

Par contre on ne sait pas comment ont été modifiés les champs et l'on n'a plus la valeur précédente des champs pour le savoir.

On pourrait associer au booléen la valeur précédente du champ... Ainsi on aurait toutes les informations utiles.

03/27/08 00:39:40 changed by laurentj

  • status changed from new to assigned.
  • owner set to laurentj.
  • review changed.
  • docneeded changed.

03/27/08 01:02:02 changed by laurentj

  • milestone set to Jelix 1.1.

03/27/08 20:18:18 changed by laurentj

  • status changed from assigned to closed.
  • docneeded set to 1.
  • resolution set to fixed.

Nouvelle méthode getModifiedControls sur le formulaire, permettant d'avoir la liste des controls modifiés et leurs anciennes valeurs (array('ref_control'=>'old_value')).

Modif fait dans le trunk. svn-846.

09/27/08 23:14:01 changed by laurentj

  • docneeded deleted.
Download in other formats: Comma-delimited Text Tab-delimited Text RSS Feed