J’essaie de configurer une action Créer spécifique qui va positionner un paramètre, mais je n’arrive pas à utiliser correctement le display form dans l’URL de l’action. Auriez vous un exemple de paramétrage ?
Tout dépend si votre action doit faire que du front ou que du back ou les 2.
De quel paramètre on parle ? (dans Simplicité tout est paramétrable ;-).
paramètre de session ?
paramètre de l’action saisissable ?
forcer valeur pour un champ en création
etc.
Pour faire des choses en back, il suffit de paramétrer le nom de la méthode à coder celle-ci dans chaque objet habilité à l’action, puis de retourner du code front en javascript.
$ui.displayForm(
container ou null pour remplacer le contenu principal,
nom de l'objet ou instance particulière,
row_id ou "0" en création,
{ nav:"new" pour démarrer une nouvelle navigation ou "add" pour l'ajouter }
);
Et on peut forcer dans les options : le tuple à afficher values (objet avec tous les fields) qui remplace le get Ajax, les actions à afficher ou pas, les hooks a appeler onload…
Je veux qu’un champ soit initialisé à une valeur donnée à la création, selon l’onglet d’où on a cliqué sur Create. Au départ j’ai positionné un paramètre session dans le preSearch que je récupère dans le initCreate mais quand je me positionne sur ma vue sans cliquer sur les onglets, c’est le 2ème qui est chargé en dernier et qui positionne le paramètre système, même si je n’ai pas cliqué dessus.
J’essaie donc de faire un bouton Create spécifique qui positionne ce paramètre système pour chaque onglet, avec dans le champ URL le lien vers le formulaire de création et mon paramètre. Ca doit être simple mais je n’y arrive pas !
Pourquoi ne pas directement tester le nom de l’objet (getName) ou celui l’instance (getInstanceName) dans l’initCreate ? car 2 onglets liste = 2 instances différentes (home ou panel).
Ensuite pour une solution par code et paramètre de session, il faut créer une Action et l’habiliter aux 2 objets listes (un seul si ce sont les mêmes avec un test à ajouter sur l’instance qui appelle) :
C’est le même objet sur les deux panels avec un filtre différent.
Et dans le initCreate j’ai le même nom d’instance pour les deux.
Du coup je vais essayer l’option code, merci !
Si c’est le même objet, il faut nécessairement avoir 2 instances différentes. Comment allez vous tester dans la méthode commune quelle instance appelle ?
Si vous avez utilisé la même instance cela ne va pas puisque les filtres sont différents, il faut bien 2 instances en mémoire.
Comment avez vous fabriqué ces 2 onglets ?
vous pouvez surement y forcer des noms d’instance différentes, toutes les API peuvent spécifier une instance particulière…