developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#51 closed enhancement (fixed)

génération d'évènements par les daos

Reported by: laurentj Owned by:
Priority: high Milestone: Jelix 1.0 RC1
Component: jelix:dao Version: 1.0alpha5
Severity: major Keywords: event dao
Cc: bastnicj@… Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version:

Description

Lors de certaines opérations effectués par les daos comme insert, delete, update, il serait bien d'avoir des jEvent générés automatiquement. Un attribut enableEvent sur les balises <method> permettrait d'activer ou non les évènements (false par défaut). D'autres attributs équivalent sur <factory> pour les méthodes natives : enableInsertEvent, enableUpdateEvent, enableDeleteEvent (true par défaut).

Change History (13)

comment:1 Changed 13 years ago by bballizlife

Je suis d'accord pour l'attribut enableEvent="true|false" sur les balises <method>

Par contre pour activer ou désactiver les évènements sur les méthodes natives, je ne vois pas trop les attributs enableInsertEvent, enableUpdateEvent et enableDeleteEvent sur <factory> pour la simple raison qu'une dao peut ne pas contenir <factory> si on n'ajoute pas de <method> personnelles. Sauf à définir <factory> uniquement pour gérer ces attributs. Un avis ?

comment:2 Changed 13 years ago by laurentj

à mon avis, vaut mieux que ces attributs soient sur <factory>, quitte à accepter un contenu vide dans cette balise.

comment:3 Changed 13 years ago by bballizlife

Hum, alors ok pour moi si on accepte les contenus vides dans <factory>

comment:4 Changed 13 years ago by laurentj

je m'interroge (tout haut :-) ) sur

  • le nom des attributs. ici là on pourrait penser que enableInsertEvent="true" -> lancer évènement pour toutes méthodes type insert. peux être qu'avoir enableEventFor="insert,delete" serait mieux (et plus extensible...)
  • la valeur true par défaut pour les enable*Event...

comment:5 Changed 13 years ago by laurentj

  • Milestone changed from Jelix 1.0beta2 to Jelix 1.0beta3

comment:6 Changed 13 years ago by bballizlife

On aurait donc <factory> acceptant un contenu vide. Je n'y vois pas d'inconvénient.

Si j'ai bien compris, pour les méthodes natives (insert, select, delete, update), jelix générerait des jEvent par défaut. Il faudrait alors explicitement désactiver la génération des évènements pour les méthodes désirées. Cela passerait donc par un attribut sur la balise <factory>. Le plus logique, il me semble, serait donc un attribut "disableEventFor" qui prendrait pour valeur les noms des méthodes natives, séparés par des virgules, pour lesquelles on souhaite désactiver des évènements (disableEventFor="delete,update").

Concernant les <method> personnelles dans <factory>, les évènements seraient désactivés par défaut. Il faudrait ajouter un attribut "enableEvent" avec pour valeur "true" pour les activer. Cela me convient aussi.

comment:7 Changed 13 years ago by laurentj

  • Milestone changed from Jelix 1.0beta3 to Jelix 1.0

comment:8 Changed 13 years ago by laurentj

  • Milestone changed from Jelix 1.0 to Jelix 1.1

comment:9 Changed 13 years ago by laurentj

  • Priority changed from normal to high

comment:10 Changed 13 years ago by bastnic

  • Milestone changed from Jelix 1.1 to Jelix 1.0

comment:11 Changed 13 years ago by bastnic

  • Cc bastnicj@… added

comment:12 Changed 12 years ago by laurentj

  • Resolution set to fixed
  • Status changed from new to closed

Améliorations apportées.

Attribute events sur la balise factory, qui peut contenir une liste d'évènements au choix parmis : delete, deletebefore, deleteafter, update, updatebefore, updateafter, insert, insertbefore, insertafter, deleteby, deletebybefore, deletebyafter.

Et sur les balises method pour les méthodes de type update ou delete : eventbefore (boolean) et eventafter (boolean).

Les évènements générés ont pour nom dao* (ex: daoInsertAfter), avec pour paramètre le selecteur du dao, et d'autres paramètres selon la méthode

comment:13 Changed 12 years ago by bastnic

You are my hero

Note: See TracTickets for help on using tickets.