j’ai un attribut dont l’auto-completion est à oui : numéro de session.
dans le formulaire de l’objet, il est alimenté avec une liste de données récupérées par API : numéro de session + libellé.
A la sélection d’un élément de la liste alimentée, un script ressource permet d’alimenter les attributs numéro et libellé.
Pour le formulaire, ça fonctionne bien.
Par contre, dans la fenêtre de recherche, ça me pose pb :
le script n’est pas exécuté. à priori, on ne passe pas dans p.form.onload dans Simplicite.UI.hooks. du coup, quand je sélectionne, l’alimentation du numéro ne se fait pas bien et contient numero + libellé. la recherche ne ramène donc rien :
Pour remédier au pb, j’ai voulu recupérer le context du hook fieldCompletion de l’objet. Il est toujours égal à null.
pouvez vous me dire comment je peux faire. l’idéal serait que le javascript soit exécuté sur la fenêtre de recherche.
A priori il faut que tu fasses de même dans le hook search.onload pour servir les champs via split de la recherche par completion. Pas sûr que les accesseurs getUIField fonctionnent dans le popup, au pire il faudra directement cibler les inputs du dialogue.
Et il y a aussi la recherche en colonne depuis la liste ? hook list.onload ?
Le search.beforeload est bien appelé après avoir récupéré les metadata de l’objet.
donc ça devrait passer, je vais essayer de reproduire.
Si le context est null dans le cas d’une recherche, mais pas dans celui du formulaire, tu peux effectivement ne rien faire.
Autre idée, au search.onload, il faut désactiver tous les handlers sur l’input (la completion en positionne pas mal keyup, keydown, input et blur), pour tout retirer :
Exact, la couche Ajax n’envoie effectivement jamais le contexte au back.
Ca doit dater du l’ancienne UI V3 / iframe.
Ce serait pratique pour qu’en back on sache dans quel contexte est utilisé la completion.
Il faut que ce soit une ano pour qu’on patch la V4