IsPanelOf : legacy vs responsive

Bonjour,

sur un objet, j’utilise la method “IsPanelOf()” dans l’initcreate pour initialiser certains champs mais je constate que mon code marche en legacy et pas en responsive (4.0.P15)

Est ce que c’est voulu comme fonctionnement?

Cordialement,
Zouhair

Je laisse @Francois répondre sur le fond mais il faudrait déjà upgrader en 4.0.P16 (releasée il y a 2 semaines)

isPanelOf teste 2 choses : le type d’instance de liste fille (commençant par panel_) et la présence d’un parent nommé. Il ne peut donc fonctionner que si on est bien une instance Panel comme son nom l’indique.

Or une création ne peut pas être dans un tel contexte car elle est désormais toujours réalisée sur l’instance “Main”. C’est un miracle voir une anomalie de l’IHM legacy. Historiquement cela devait fonctionner mais posait de nombreux autres problèmes de règles antagonistes entre Panel et Main.

Par contre le parent object est bien présent même en création issue d’un panel mais l’instance n’est plus “panel_ajax_xxx” mais “the_ajax_xxx” car en création, on doit bien travailler sur le formulaire qui devient le parent d’éventuels autres panels fils…

Du coup, dans votre car il faut donc uniquement tester qu’on a bien un parent présent et son nom.

var parent = this.getParentObject();
if (parent && parent.getName()=="myParent") ...

En revanche tester le type d’instance n’apporte rien dans un initCreate.