Afficher une page par défaut sur un onglet précis selon le statut

Bonjour,
est-il possible selon le statut d’un enregistrement, de l’enregistrer par défaut sur un onglet (pour faciliter la navigation de l’utilisateur).

Exemple, si dans cette fiche, je souhaite accéder par défaut à l’onglet “Fiche commentaire”.

Merci,

Bonjour,

Je pense que vous voulez dire sélectionner un onglet en fonction d’une valeur et non pas “enregistrer”.
Il faut faire un peu de code front pour agir sur la UI à l’ouverture du formulaire. Je vois 2 approches :

  1. modifier l’index de l’onglet sélectionné en mémoire sur le front, avant affichage via le hook form.preload :
// Form local parameters = hooks, hasChanged, formTab ...
var locals = obj.locals.ui.form;
locals.preload = function(ctn, obj) {
  var f = obj.getField("fieldname");
  var v = f ? f.value() : null; // ne pas utiliser $ui.getUIField car pas encore affiché
  if (v=="value") {
    locals.formTab = locals.formTab || {}; // les indexes des onglets ouverts
    locals.formTab[0] = 1; // i.e. 1er tabs / 2eme onglet
  }		
};
  1. ou alors une fois chargé après affichage via le hook form.onload : faire un click sur l’onglet pour le charger (listes liées…)
var locals = obj.locals.ui.form;
locals.onload = function(ctn, obj) {
  var f = $ui.getUIField("fieldname");
  var v = f ? f.ui.val() : null; // la valeur à l'écran
  if (v=="value")
    $("a[href=tabs_work_<index>_<numero>]").click();
};
  • index du tabs = s’il y a plusieurs tabs dans le formulaire, son numéro dans l’ordre d’affichage
  • numero de tab = l’onglet du tabs (0 = premier)

Evidement si le template change, les indexes vont bouger, il faudra maintenir ce code ou utiliser un selector plus malin.

Yes exactement ça. Merci,
par contre je ne saisis pas le hook form.preload.
Quand je commence à saisir le debut du hook (avec CTRL + Espace), on ne me propose pas celui du form.preload.
N’est-ce pas seulement preload() ?

merci,

Bonjour,

Pour jouer sur la UI, il faut du code front javascript dans le navigateur, pas d’un hook côté serveur en java. Vous devez créer une ressource “SCRIPT” de type JS sur votre objet métier et y coder vos hooks UI pour cet objet.

Si vous ne connaissez pas ces fonctionnalités, regardez la documentation sur les hooks front

https://docs.simplicite.io/documentation/04-ui/responsive.md#hooks

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