[TUTO noodom] nouveau menu nooNeumorphism

Attention, il fait d’abord ajouter le htmlDisplay content (qui contient le code de création de la frame) et ensuite seulement ajouter le htmlDisplay du code du menu.
En effet le menu cherche à charger le design du premier bouton dans le contenu donc il doit déjà être existant.

Sinon en lançant le debugger du navigateur est-ce que tu vois des erreurs javascript ? Tu as bien supprimé le traducteur automatique du navigateur sinon ?

Ok et effectivement j’ai inversé et cela fonctionne mieux j’ai galéré sur ce point car je ne pensais pas qu’il y avait une importance chrono

Merci

Oui je vais refaire une passe sur la doc de chaque menu, j’avais ajouté cet ordre mais je n’ai pas dû le préciser pour tous.

EDIT : tu as dû avoir ce message dans les logs du navigateur : ERREUR : Frame de contenu non créée.
A voir pour le remonter en alerte pour s’en rendre compte immédiatement :wink:

1 « J'aime »

ils sont excellents tes menus

dernier petit point je n’arrive pas à avoir le fond transparent dans les contenus pour voir l’image du design principal
j’ai joué sur les cases transparentes et niveau mais j’obtiens cela

Pour le fond blanc du menu, tu dois cocher « Transparent » pour le supprimer.

non je n’ai pas eu ce message sauf cela

car j’avais pas le design du menu home

et quand je mettais le numéro de design, il prenait le dessus et mon design initial disparaissait

pour le menu c’est bon, je l’ai fait après le premier post
mais c’est sur celui du contenu

1 « J'aime »

Ah… j’ai répondu avant de voir ton dernier post :slight_smile:
ça fait quelques temps que je n’ai pas rejoué avec mes menus,
mais de mémoire, le problème du fond non transparent est dû à une limitation/contrainte au niveau de Jeedom.
Je referai quelques tests pour me remettre dedans (il doit y avoir quelques discussions qui trainent sur le sujet sur les autres menus)

Pour le message de la frame de contenu non créée, il est actuellement seulement visible dans les logs du navigateur en mode debugger donc tu ne le verras pas en utilisation normale.

Pour l’erreur 500, difficile de définir le problème comme ça : il faut ouvrir le debugger (F12) et regarder ce qui provoque cette erreur (url appelée).
Mais de ce que je comprends de ta configuration, attention :

  • les ids des designs définis dans perso.json pour chaque bouton doivnet être des designs « indépendants » : ils ne contiennent que des widgets Jeedom et rien du code des menus.
  • l’id du design principal qui contient les htmlDisplay ne doit pas se retrouver dans perso.json sinon il bouclera sur lui-même.

Au final, tu auras par exemple :

  • design principal d’id 50 qui contient les 2 htmlDisplay (code du github)
  • designs d’ids 51, 52, .., 57, 58 qui contient des widgets Jeedom
  • perso.json : ne contient pas l’id 50

merci c’est bon pour la partie menu.

le dernier point restant est la transparence du design contenu

je suis preneur si tu as une methodo

Merci encore

1 « J'aime »

Hélas je crains que ça ne soit pas gagné pour le moment pour le fond transparent du contenu. A suivre…

Bonjour,
J’utilise maintenance ce menu qui me convient bien et que j’ai réussi à modifier pour le moment pour répondre à mon besoin.

Néanmoins j’aimerai faire une autre modification et là je bute.

Voilà je n’ai pas envie de mettre de widget de mon alarme sur mon design mais je souhaita que le label du logo (Noodom) par défaut change de couleur en fonction du statut de l’alarme.

J’ai donc créé une classe « alarmStatutOn » dans le fichier cas.

Ensuite j’ai tenté d’ajouter cela dans le contenu du html display.

  	//Mise à jour du logo en fonction du statut de l'alarme
    var IDStatutAlarme = 3709;//ID de la commande
	jeedom.cmd.update['IDStatutAlarme'] = function(_options){
		jeedom.cmd.execute({ // Récupération de la valeur  
			id: IDStatutAlarme,
			success:  function(valeur_courante) {
              if(valeur_courante =='ON'){
                $('.logo').addClass('alarmStatusOn');
              }
			}
        })
    }
   	jeedom.cmd.update['IDStatutAlarme']();

Donc je récupère bien le statut de l’alarme mais la classe ne semble pas s’ajouter.

Je ne sais pas trop comment faire.

Peut être est il préférable de passer par un scénario???

Avez vous une idée?

FRED

Salut,

Bonne idée pour le changement dynamique du css du titre du menu ! :slight_smile:

Tu n’es pas très loin de la solution en fait. Voilà les points à corriger (tu dois pouvoir t’y retrouver avec le code existant que j’ai volontairement ajouté ci-dessous pour voir où ajouter les modifications) :

  1. Pour l’exemple, j’ai ajouté la déclaration css suivante dans perso.css :
.alarmStatusOn {
    color: red !important;
}
  1. au niveau du code du menu
  • Je suis reparti de ta méthode d’update sur modification de la valeur de l’alarme en corrigeant l’utilisation de IDStatutAlarme (il ne faut pas la mettre entre quotes pour récupérer sa valeur).
    Il faut aussi supprimer la classe (removeClass) lorsque l’alarme revient à sa valeur initiale (OFF j’imagine) sinon le titre restera toujours en rouge une fois l’alarme déclenchée.
 	// menu redirection
  	function gotoPlan(id) {
		...
	}
  
  	//Mise à jour du logo en fonction du statut de l'alarme
	jeedom.cmd.update[IDStatutAlarme] = function(_options){
		jeedom.cmd.execute({ // Récupération de la valeur  
			id: IDStatutAlarme,
			success:  function(valeur_courante) {
              console.log("get alarm value : " + valeur_courante);
              if(valeur_courante == 'ON'){
                $('.logo').addClass('alarmStatusOn');
              }
              else {
                $('.logo').removeClass('alarmStatusOn');
              }
			}
        })
    }
  
  //# sourceURL=menuCreation.js
  • Par contre, il faut appeler la fonction après avoir chargé le menu sinon le titre ne sera pas modifié au chargement du manu (car pas encore présent). Il faut donc placer l’appel ici (à la fin de la construction du menu et donc de la méthode $.getJSON) :
                document.documentElement.style.setProperty('--cursor-height', cursorHeight);

			}

            jeedom.cmd.update[IDStatutAlarme]();
        });
	});
  • Il faut déclarer l’id de l’alarme en début de script ici (premières balises <script/>) :
  document.getElementById('cssDiv').appendChild(link);
  var IDStatutAlarme = 8846;//ID de la commande
</script>

Alors effectivement je n’étais pas loin mais c’est comme cela qu’on apprend.

J’ai bien modifié le cas comme toi.
Pour le remote, je l’avais en tête effectivement mais il me manquait les quote et je n’avais effectivement pas mis au bon emplacement la fonction.

Du coup je trouve le résultat sobre mais sympa.

Merci à toi.

PS : et j’ai même modifié en mettant la couleur dans le json :wink:

Salut
Allez j’ai encore une petite demandé. J’ai essayé par moi même mais je ne connais pas le javascript suffisamment bien.

Je souhaite ajouté un cadenas à gauche du logo quand l’alarme est ON et le faire disparaitre quand l’alarme est OFF.

Donc si je mets manuellement cela :

 let listButtons = '<li class="logo"><i class="fa fa-lock"></i>';

Cela donne bien le résultat que je souhaite quand l’alarme est ON. Maintenant c’est quand le rendre dynamique.
Une petite piste? Avec une variable ou une propriété spéciale?

salut,

Pour ajouter le cadenas, tu peux ajouter les css suivants dans le fichier perso.css au code que j’avais proposé précédemment :

  1. Ajout du cadenas à droite
.alarmStatusOn::after {
  content: "\f023";
  font-family: "Font Awesome 5 Free";
  margin: 0 0 0 5px;
}

Tu auras alors le résultat suivant lorsque ton alarme sera sur ON :
cadenasSimple

  1. Ajout du cadenas à gauche
.alarmStatusOn::before {
  content: "\f023";
  font-family: "Font Awesome 5 Free";
  margin: 0 5px 0 0;
}

Tu auras alors le résultat suivant lorsque ton alarme sera sur ON :
image

  1. Ajout du cadenas à droite et clignotant
.alarmStatusOn::after {
  content: "\f023";
  font-family: "Font Awesome 5 Free";
  margin: 0 0 0 5px;
  animation: blink 1s linear infinite;
}
@keyframes blink{
  0%{opacity: 0;}
  50%{opacity: .5;}
  100%{opacity: 1;}
}

Tu auras alors le résultat suivant lorsque ton alarme sera sur ON :
cadenasClignotant

1 « J'aime »

Ah oui génial. Merci pour ton aide

Bonjour,

Tout d’abord, merci pour ce travail…Je cherchais un menu adapté à mon design et je l’ai trouvé grâce à noodom…Merci

Je pense que j’ai loupé quelque chose car je n’arrive pas à afficher le menu NooNeumorphism. J’ai bien suivi les indications mais je me retrouve avec ça sur la page design du menu :
image

et rien ne semble se passait…

Une idée sur mon erreur ?

merci

1 « J'aime »

Salut,

Tu peux regarder dans la console du debugger de ton navigateur (touche F12) ?
Il y a des erreurs de remontées ?

Sinon envoyer aussi une capture depuis jeexplorer des fichiers ajoutés pour valider ton arborescence

Tu as bien respecté l’ordre d’ajout des htmlDisplay ?

J’ai en effet des erreurs :

Oui, j’a respecté l’arborescence. J’ai juste modifié le répertoire montheme par Mytheme dans le htmldisplay ‹ menu ›
Oui, j’ai respecté l’ordre.