MENU: masquage des bannettes liées au state model suite à un héritage

Bonjour,

J’ai créé un objet métier avec héritage d’objet sur lequel nous avons créé un state model.

Dans l’affichage de notre nouvel objet, les bannettes sont aussi héritées. Or nous n’en avons pas besoin.

Existe-t-il un moyen par code (ou directement via des boutons de paramétrage Simplicité) de ne pas afficher cette bannette ?

Cordialement
Jean-Baptiste

Pour jouer avec la visibilité du menu, il y a différentes approches

  1. le hook GrantHooks.isMenuEnable(grant, domain, object)
    mais cela permet juste de masque un objet ou un processus, mais pas un statut d’objet
    Ce serait pas mal d’ajouter le status optionnel.

  2. L’accès à la liste d’un statut donné est conditionné par le flag paramétré sur l’Etat :

image

C’est donc global pour tous les objets qui utilisent cet état (hérité ou non).
Ca n’ira pas non plus dans votre cas.

  1. Par code back, après chargement des droits GrantHooks.postLoadGrant

Vous pouvez allez chercher votre item dans l’arbre du menu et retirer les items qui ne conviennent pas.
grant.getMenu() => donne la racine MenuItem avec tous les domaines, recherche en profondeur getChildren() jusqu’à votre item puis item.getAccessibleStates().remove(indexStatus)

  1. Par code front, sur le ui.ready de la UI en masquant certains item par JS en fonctino des droits de l’utilisateur hasResponsibility (resource SCRIPT de la disposition), ou directement dans les STYLES si c’est global :

.main-menu [data-obj='MyObject'] [data-state='myState123'] { display: none; }

1 Like