Conserver réglage burger menu minified

Bonjour,

J’aurais voulu savoir s’il existe nativement, un moyen de conserver le réglage pour chaque utilisateur concernant le fait que le menu soit déployé ou nom.

image

En résumé, le but serait de conserver le paramétrage de l’utilisateur, pour éviter un clique à chaque connexion pour passer en menu “minified” ou inversement en fonction des gouts de l’utilisateur.

Merci d’avance,

Benoît

Il y a le champ usr_menu_defcollapsed qui permet de spécifier cette préférence dans le formulaire du User :

image

Est-ce que vos utilisateurs ont accès à ce paramétrage ?
Ou vous pouvez forcer la valeur à la création ou postLoadGrant du User en fonction de ses habilitations.

grant.getData().m_menu_collapsed = true;
1 Like

Merci pour ta réponse @Francois.

J’ai fais des tests, et j’arrive à faire marcher “Menu visible” (le menu disparait bien), par contre pour “Menu collapsed by default” je n’ai aucune différence (le menu est toujours ouvert par défault).

De mémoire ce flag est un reste de la 3.x où il servait à ouvrir les domaines du menu par défaut (cet usage n’a plus de sens sur la UI 4.0+)

@Francois je ne sais pas si ce flag a été réutilisé en 4.0+ pour gérer le pliage/repliage par défaut des menus mais, effectivement ça ne semble pas avoir d’effet (testé en 5.2 à jour)

Oui il est envoyé avec les droits à la UI.
cf menuCollapsed dans le grant quand le menu est visible (sinon c’est pas envoyé).

En front, ça sert juste à faire un “click” sur le bouton collapse menu à l’ouverture
mais il y a peut être un régression, le bouton s’affiche trop tard… on va regarder

Pour donner des idées sur ce sujet : j’ai un cas où sur l’affichage d’une page particulières (un objet externe), je force le repliage du menu et le remet dans son état de pliage précédent quand on quitte la page:

var $menu = $ui.view.menu;
var min = $menu.isMenuMin();
if (!min)
  $menu.menuMin(); // Force le menu en mode replié

// On revient au mode du menu précédent lorsqu'on quitte
$ctn.addClass("js-content-unload").on("ui.content.unload", function() {
  if (!min)
    $menu.menuMax();
});
1 Like

Je confirme, le chargement asychrone déclenche trop tôt le pliage du menu pas encore affiché.
On va revoir ça.

A n’utiliser que sur desktop ou tablette, car sur mobile le menu doit etre complêtement masqué en retirant la classe .menu-show (pas d’icones).

Pour gérer tous les cas de device, il est préférable de passer par :

$menu.menuToggle() => toggle plié/déplié
$menu.menuToggle(null, sign) => forcé avec sign = -1 plié / 1 déplié

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