Dans un formulaire, j’utilise un champ de type pillbox pour associer des contributeurs (utilisateurs) via une table d’association.
Je souhaite que l’utilisateur puisse ajouter des utilisateurs via l’autocomplétion uniquement, sans avoir la possibilité d’ouvrir la fiche utilisateur en cliquant sur une pill déjà sélectionnée.
Dans la table d’association, la case “lien navigable” est bien décochée et les utilisateurs ne sont pas cliquables depuis cette liste mais en pillbox on a cependant accès à ce formulaire
Test :
J’ai tenté un hack front via JavaScript pour désactiver le clic (onclick) et modifier le curseur, mais cela ne s’applique qu’à l’ouverture du formulaire, car le hook de customisation front ne s’exécute qu’une seule fois au chargement.( onLoadForm)
J’ai également envisagé un MutationObserver en front pour surveiller dynamiquement les ajouts de pills, mais cela reste fragile. Une solution standard, propre côté plateforme, serait fortement préférable.
J’ai tenté aussi d’utiliser le hook useForm() dans la table User pour que le formulaire ne soit pas accessible psans les droits associés mais ils ont quand meme accès au niveau de la pillbox.
Steps to reproduce
This request concerns an up-to-date Simplicité instance
and these are the steps to reproduce it:
Créer un lien entre un objet et User via une association N:N avec affichage en pillbox.
Depuis le formulaire, ajouter un utilisateur via l’autocomplétion dans le champ pillbox.
Constater que la pill nouvellement ajoutée est cliquable et permet d’ouvrir le formulaire utilisateur.
Objectif : rendre la pill non cliquable dès son ajout
De mon côté la configuration est bien la même : la case “Liens navigables” est décochée sur la table d’association.
J’ai constaté le comportement suivant sur plusieurs pillbox testées ( Retour de test sur produits en 6.2.7 et 6.2.10 ) :
Si j’ajoute une pill et que je clique immédiatement dessus, elle est cliquable (le formulaire utilisateur s’ouvre).
En revanche, si je quitte le formulaire puis je reviens, la pill n’est plus cliquable, comme attendu.
Cela donne l’impression que le followLink est bien pris en compte au chargement initial du formulaire, mais pas dynamiquement au moment de l’ajout via l’autocomplétion.
Le code JS que tu a partagé est explicatif ou bien un applicatif pour corriger ? ( Me manque peut être un élément de compréhension)
Est-ce un comportement attendu ? Ou bien un cas qui pourrait être corrigé pour que la pill soit non-cliquable dès son ajout, sans devoir recharger le formulaire ?
Pb reproduit, effectivement l’ajout en pillbox sur un formulaire en mise à jour ignore le nouveau followlink calculé côté serveur, on va corriger.
Par contre en cas de création de pillbox en mémoire (depuis un formulaire en création), il n’y aura pas de followlink par défaut sur les ajouts, car on ne sait pas encore appeler les hooks éventuels puisque rien n’existe encore en base.