[TUTO noodom] Redirection vers un lien d'un bouton de menu par scénario

Helloo,

Je vous présente une nouvelle fonctionnalité pour mes menus avec navigation par frame :
Il est maintenant possible de rediriger automatiquement le contenu du menu vers un des liens des boutons du menu depuis un scénario (dans un bloc-code)

:one: Installation
:arrow_forward: ajouter le code suivant dans le fichier personnalisé custom.js

:arrow_forward: Installer ou mettre à jour le menu souhaité, par installation automatique habituelle ou en modifiant directement le fichier associé dans le plugin HTML Display (dispos sur Github seulement VerticalTom pour l’instant)

Si ajout manuel dans un menu de le plugin HTML Display, ajouter ce code (comme dans le code github du menu VerticalTom ci-dessus)
    $(document).on('noo::gotoDesignWithParamsMenu', function (_e, payload) {
      const data = payload?.[0] || payload || _e.originalEvent?.detail || {};
      const link_id = data.link_id;
      // si paramètres supplémentaires, remplacer la ligne précédente par la liste des paramètres à traiter : const { link_id, nom, mode } = data;
      if (link_id) {
        gotoPlan(link_id);
      }

      /* exemples de traitement de paramètres supplémentaires
      if (nom) {
        $('#menuTitle').text(nom);
      }*/
    });

:two: Utilisation depuis un scénario
:arrow_forward: copier le code suivant dans un bloc code de scénario.
Paramètres possibles à envoyer (avec possibilité d’ajouter des paramètres supplémentaires, à traiter ensuite dans le menu)

  • design_id : (optionnel) nécessaire si on veut ouvrir la page du menu même si le menu n’est pas ouvert
  • link_id : page de l’id de design correspondant à un bouton du menu → lien de redirection demandé
  • forceRedirection : (optionnel) force la redirection de toutes les pages Jeedom actuellement ouvertes vers le design (design_id) et le bouton du menu (link_id) demandés
    - design_id doit être précisé pour la prise en compte du paramètre force_redirection
    - link_id est optionnel : permet d’ouvrir directement un des liens du menu
  • fullscreen : (optionnel) permet de forcer l’affichage plein écran du menu → 0 : force l’affichage de menu Jeedom, 1 : force l’affichage plein écran du menu, pas de paramètre : conserve la valeur actuelle de la page Jeedom
2 « J'aime »

:new: Ajout du paramètre 'username' : ce paramètre permet de filtrer la demande de redirection seulement pour les utilisateurs de la liste de ce paramètre.

  • Exemple pour un filtre pour un utilisateur :

    $params = [
      'design_id' => 121,
      'link_id' => 53,
      'force_redirection' => 0,
      'fullscreen' => 0,
      'username' => 'admin'
    ];
    
  • Exemple pour un filtre pour plusieurs utilisateurs :

    $params = [
      'design_id' => 121,
      'link_id' => 53,
      'force_redirection' => 0,
      'fullscreen' => 0,
      'username' => ['admin', 'noodom']
    ];
    

:arrow_right: Installation

  • nouvelle installation : reprendre l’installation précédente
  • modification si installation précédente déjà effectuée :
    • ajouter le paramètre ‹ username › dans les paramètres du scénario
    • remplacer le code de custom.js par le code modifié pour ce nouveau paramètre sur github