You are currently viewing Jeedom : des Widgets en Pop-up

Jeedom : des Widgets en Pop-up

Annonce pop-up icônes créées par Flat Icons – Flaticon

[cmsmasters_row][cmsmasters_column data_width= »1/1″][cmsmasters_text]

Bonjour,

L’idée de cette article est de créer des Pop-ups sous Jeedom.

L’objectif est de simplifier au maximum le Dashboard tout en gardant les fonctionnalités de celui-ci.

La mise en place n’est pas compliquée. Il vous suffit de copier le code.

 

Prérequis :

  • Un Jeedom fonctionnel ^^
  • L’installation du plugin  « HTMLDisplay » gratuit sur le market.

Le tutoriel sera donc organisé de cette façon :

  • Mise en place du code CSS et Javascript
  • Recherche l’identifiant unique du Widget à mettre sous forme de Pop-up
  • Création de la « tuile » pour appeler le Pop-up à l’aide du plugin HTMLDisplay

Mise en place du code CSS et Javascript / créer des Pop-ups sous Jeedom

Pour cela, rendons-nous dans le menu Réglages->Système-> Personnalisation avancée.

Le code javascript a copié (partie gauche de la page) :

function createWidgetPopup(WidgetId,OverlayId,BtnPopupId,BtnCloseId,PopupTextId)

  {

    var getdiv = $("div[data-eqlogic_uid^='eqLogic" + WidgetId + "__']");

    // suppression du style dans le click : car il le remet à chaque resize

    //getdiv.removeAttr("style");

      var overlay = $(OverlayId);

      $(PopupTextId).html(getdiv);

      $(PopupTextId + ">div>.widget-name").append("<span id=\""+ BtnCloseId.substring(1) +"\" class=\"btnClose\">×</span>");

     var btnPopup = $(BtnPopupId)[0];

      var btnClose = $(BtnCloseId)[0];

    $(btnPopup).on('click', { source: OverlayId, styleid : WidgetId}, openModalWidget);

    $(btnClose).on('click', { source: OverlayId}, closeModalWidget);

  }

  function openModalWidget(elementId){

    var MonId = elementId.data.source;

    var WidgetId = elementId.data.styleid;

    var getdiv = $("div[data-eqlogic_uid^='eqLogic" + WidgetId + "__']");

    // suppression du style dans le click : car il le remet à chaque resize

    getdiv.removeAttr("style");

    $(MonId).css("display", "block");

  }

function closeModalWidget(elementId){

      var MonId = elementId.data.source;

      $(MonId).css("display", "none");

    }          

Le code CSS à copier (partie droite de la page) : créer des Pop-ups sous Jeedom

/***************** popup ************/

.btnPopup{

                background-color: #575757;

                padding:1em 1em;

                font-size:2pt;

                color: #ffffff;

                cursor: pointer;

}

.btnPopup:hover{

                background-color: #9d9b9a;

}

.overlay {

                position: fixed;

                left: 0px;

                top:0px;

                background-color: rgba(0,0 ,0 , 0.5);

                width: 100%;

                height: 100%;

                z-index:1;

                display:none;

}

.popup{

                margin: 10% auto;

                max-width : 30%;

                position:relative;

}

.btnClose {

                /*float: right;*/

                position: absolute;

                right:1.25em;

                font-size:1.25em;

                cursor: pointer;

                color: rgb(26, 26, 26);

}

/*********************************/

Voilà, n’oubliez pas de sauvegarder votre travail :

  • Bouton sauvegarder du bloc javascript
  • Bouton sauvegarder du bloc CSS

Ce que vous venez de faire. Servira pour tous les pop-ups !!!

Pas besoin de refaire la manip pour chaque nouveau pop-up !!

Vous avez déjà fait la moitié du tuto 😊

Rechercher l’identifiant unique du Widget à afficher / créer des Pop-ups sous Jeedom

C’est la partie la plus technique du tuto (c’est loin d’être insurmontable).

Ici, il faut trouver l’identifiant unique de l’élément du Dashboard qu’on veut afficher sous forme d’un pop-up.

Pour cela, On va aller directement dans le code du Dashboard (on pourrait le trouver directement dans la base de données) mais je pense que l’équipe Jeedom ne soit pas chaud qu’on fouille dedans 😊

En conséquence, on va regarder un exemple avec Chrome (mais c’est sensiblement les mêmes manipulations avec les autres navigateurs).

  • Rendez-vous sur votre Dashboard
  • Faire un clic droit puis inspecter

Image pour inspecter la page

Un nouveau cadre s’affiche (en bas ou sur la droite, la plupart du temps). Cliquez sur l’icone en haut à gauche du cadre :

image pour selectionner l'outils d'analyse

Après avoir cliqué sur l’icône (en haut à gauche : la flèche dans le cadre) : lorsque vous passez sur la page, chaque élément change de couleur. Faites-en sorte que le widget complet soit en surbrillance. Cliquez dessus !!

image pour selectionner un widget

 

  • Dans la fenêtre de code, le code correspondant au widget se met en surbrillance :

Il faut regarder la valeur de data-eqlogic-id

  • Ici c’est 278 ( data-eqlogic_id= »278″)

On garde dans ce numéro dans le coin de la tête, il sera important pour la suite 🙂 .

Création d’une tuile pour appeler votre pop-up : HtmlDisplay

Après avoir télécharger HTMLDisplay, n’oubliez pas de l’activer !!

image pour activer le plugin

S’il est bien actif, rendez vous dans Plugins->Programmation->HTML display

image pour selectionner le plugin

Ajouter un nouvel équipement :

image création htmlDisplay

 

 

Donnez-lui le nom que vous voulez (plus parlant que mon toto 😊 ) :

image choix du nom HtmlDisplay

 

 

Rendez-vous dans l’onglet Dashboard :

Même principe qu’au-dessus, il faudra copier du code. Par contre, contrairement à au-dessus, il faudra le faire pour chaque pop-up.

Image du code HtmlDisplay

<button id="btnPopup#id#" class="btnPopup"><img src="data/img/icone_scenario.png" width="80" height="80" alt=""></button>

<div id="overlay#id#" class="overlay" >

                <div class="popup">

                               <div id="popupText#id#">

                                               essai

                               </div>

                </div>

</div>

<script>

   $(document).ready(function(){

                 var WidgetId = "267";

                 //$(btnPopup).on('click', { source: OverlayId}, openModalWidget);

                 createWidgetPopup(WidgetId,"#overlay#id#","#btnPopup#id#","#btnClose#id#","#popupText#id#");

   });

 </script>

Nous avions trouvé précédemment 278 .

Je modifie la ligne comme ça :

var WidgetId = « 278 »;

Je n’oublie pas d’enregistrer

Changer l’icône d’appel du pop-up

Voici la ligne que j’ai utilisé pour l’icône (d’ailleurs, elle ne devrait pas bien s’afficher chez vous à moins que vous ayez la même icône au même endroit) :

<<button id="btnPopup#id#" class="btnPopup"><img src="data/img/icone_scenario.png" width="80" height="80" alt=""></button>

Vous pouvez mettre l’image que vous voulez.

2 choses à garder systématiquement :

  • Id= « btnPopup#id# »
  • Class= « btnPopup »

Voici une ligne qui devrait fonctionner pour tout le monde (avec les icônes intégrées à Jeedom) :

<span><i id="btnPopup#id#" class="fas fa-toggle-on btnPopup" style="font-size:2em;color:#fcd734"></i></span>

Comme vous pouvez le remarquer, j’ai ajouté l’id qu’il faut (btnPopup#id#). Et j’ai ajouté, dans la liste des class, la bonne classe (btnPopup).

Le code présenté dans l’article prend un widget existant pour l’afficher sous forme de Pop-up. Il peut-être adapté pour votre besoin.

Voila, vous savez créer des Pop-ups sous Jeedom !!

On attend vos réalisations et adaptations 😊

 

 

https://www.facebook.com/groups/entraidejeedom/

Articles gracieusement cédé et rédiger par Olivier L. Merci à toi.

Si vous souhaitez collaborer n’hésitez pas à faire une demande aux modérateurs d’entraide Jeedom sur facebook.