Bouton loupe (affichage d'une liste) et Pop-up

Bonjour,

Dans un formulaire de création, j’ai pour demande d’afficher une pop-up lors de la sélection d’un champ en fonction du remplissage (ou non) d’un autre champ.
P.S. : On parle ici de champs rapportés via une FK → ouverture de liste pour sélectionner

Jusqu’ici j’avais pour habitude d’utiliser la fonction InitRefSelect pour filtrer une sélection en fonction d’un autre champ (en passant par le parent). Ceci dit, je n’ai pas trouvé de moyen similaire pour agir sur l’ouverture d’une liste en elle même afin de la remplacer par une pop-up.

Bien cordialement,

Mounir

Bonjour,

La loupe de ref-picker affiche une liste pilotée par un hook initRefSelect sur l’'instance ref_ajax en back, dans lequel vous pouvez spécifier des filtres ou search-spec. Le parent object dans ce contexte est le formulaire qui contient la foreign-key et les champs référencés.

Effectivement, je travail déjà souvent avec ce Hook.
Cependant mon besoin actuel est de ne pas afficher la liste resultante de l’instance ref_ajax avec ses filtres et de “simplement” afficher une pop-up de warning à la place (sous quelques conditions)

(p.s. : Je cherche à faire une sorte de contrainte)

Je me demande également s’il est possible de répondre à cette demande via une contrainte…

Bonjour,

Non il n’est pas possible par contrainte de remplacer ce popup de sélection de référence.

Par contre au lieu d’afficher un warning, il me semblerai plus intuitif en terme d’UX de rendre ce champ invisible ou en read-only si les conditions pour y accéder ne sont pas remplies (autres champs obligatoires…). Vous pouvez surement créer une contrainte front sur la foreign-key qui la rend visible ou modifiable que sous conditions dans l’impact.

Sinon pour garder la popup standard, on peut essayer :

  • d’ouvrir la liste de sélection en spécifiant un filtre setSearchSpec(“0=1”) pour ne rien lister donc ne rien pouvoir sélectionner si des choses sont manquantes
  • iI est surement possible d’afficher un message via
    getContext().addMessage(this, "Veuillez saisir X avant de sélectionner Y", getGrant());

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.