Bonjour,
Lorsque j’avais la version 3, j’avais bidouillé un widget pour qu’il n’affiche que l’icone de la commande et en dessous un icone en fonction de la valeur. J’avais du rajouter un morceau de script pour modifier la taille de l’icone et celle du icone.
Merci d’avance pour vos retours. J’ai bien peur qu’il faille que je réalise un widget code, si quelqu’un a un modèle simple dans le style de la V4 je suis preneur.
Merci pour ce retour.
J’ai ajouté « !important », la taille de cet icône était déjà bonne, donc visuellement pas de changement.
l’icone que je souhaiterais agrandir est celui du div avec la class .cmdName. C’est ici que j’ai l’impression qu’il faut faire le code.
Finalement j’ai trouvé la solution, il faut passer par du code.
Si ça interesse quelqu’un, voici mon premier widget v4 qui affiche l’icone d’une commande, l’icone de la valeur et le délais du changement de valeur.
Pour l’impémenter, il faut aller dans Outils/Widget/Code, cliquer sur nouveau (renseigner les infos suivantes + nom au choix)
<!-- Widget Jeedom v4 - info/binary - Show command icon + icon value + time value -->
<div class="cmd cmd-widget cursor #history#" data-type="info" data-subtype="binary" data-template="tmplicon" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
<div class="title #hide_name#">
<div class="cmdName">#name_display#</div>
</div>
<div class="content-sm">
<span class="iconCmd"></span>
</div>
<div class="value">
<span class="timeCmd#uid# timeCmd label label-default value"></span>
</div>
</div>
<script>
jeedom.cmd.update['#id#'] = function(_options){
var cmd = $('.cmd[data-cmd_id=#id#]');
cmd.find('.title').find('i.icon').css('font-size','3em');
// Affichage du delais de changement de valeur
jeedom.cmd.displayDuration(_options.valueDate, cmd.find('.timeCmd'));
cmd.attr('title','Date de valeur : '+_options.valueDate+'<br/>Date de collecte : '+_options.collectDate)
if (_options.display_value == '1') {
cmd.find('.iconCmd').empty().append("<i class='fas fa-circle' style='font-size: 12px !important;'></i>");
}
else {
cmd.find('.iconCmd').empty().append("<i class='far fa-circle' style='font-size: 12px !important;'></i>");
}
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
Astuce: créer 2 widgets identiques pour pouvoir afficher le temps que sur certaines commandes, l’un avec « time widget » coché, l’autre sans la coche !
Lorsque l’on fait un widget « code », on n’a pas la possiblité de cocher l’option time widget. Il faut en faire un deuxième sans (sauf erreur de ma part).
Bonjour Heliospeed, j’entends bien ! merci de tes infos qui nous apprennent un peu plus chaque jour, je suppose que t’en qu’à coder autant ajouter la possibilité du choix pour le « time widget », c’est ce qui est fait d’une manière ou d’une autre dans les widgets utilisateurs !
Merci également de ton partage.
Tu as raison, j’ai fusionné les deux widgets en une seule version et mis à jour la documentation.
Il y a maintenant un paramètre optionnel timeWidget a rajouter (par défaut il est actif).
Bravo !!!
La connaissance est un fruit qui grandit quand on le partage, contrairement au gâteau !
Les idées partagées font souvent naître d’autres idées, c’est un couvin !
Partageons, partageons, même dans nos erreurs il y a du positif si on sait regarder.
Encore bravo pour ton travail.
J’ai appliqué ton widget à une commande, l’affichage est correct mais il y a un message en plus sur la tuile: « @2020 GitHub, Inc. Terms Privacy Security Status » , une petite modif à faire ! ?
Ha ces autodidactes !, ils n’en font qu’à leur tête. Tu avais raison, la gourmandise est un vilain défaut, lors du copier collé je n’avais pas vu le texte qui c’était invité et comme lors du collé la fenêtre qui s’est agrandie ne montrait rien du texte ajouté, j’ai pris pour argent content ma copie. L’erreur est rectifiée, je suis retourné dans le code et j’ai supprimé cet affreux texte invasif , mais il me reste une question, comment faire pour ajouter une image sur ma tuile à la place d’une icône, car je n’ai que le temps et l’état d’affiché (en plus des commandes) , comment peux t’on faire en sorte que l’état soit affiché sous forme d’image ?
Tu vas me dire, impossible … Et je te répondrai, ne doute pas de toi, tes capacités ne demandent qu’à être exploitées !
Cependant il reste quelques points à modifier pour ce qui est déjà fait:
Dans la configuration des commandes, dans l’onglet affichage, pour Etat, si tu ne coches pas « afficher le nom », alors il n’y a pas d’icône d’affiché sur la tuile;
De plus si tu coches « afficher le nom et l’icône » , il n’y a pas d’icône d’affiché non plus, pas plus que le nom du reste. Du coup il va te falloir ajouter quelques lignes pour que cela soit bien pris en compte.
Bon courage !
ps: n’oublies pas que ton gâteau peut grandir, si tu le partages ! Cerise sur le gâteau, il peut devenir galette avec une fève à l’intérieur
L’objectif de mon widget est justement d’afficher uniquement l’icône de la commande sur la tuile (peut être que je devrais mettre un test pour en afficher un par défaut…)
Si j’ai un peu de temps, je vais regarder ce que je peux faire, après comme toi je suis autodidacte et je découvre au fur et à mesure.
Pour répondre plus à tes besoins, je t’invite à repartir de mon widget pour l’adapter. Je sais ça prend beaucoup de temps mais à la fin, on n’a toujours la satisfaction de l’avoir fait
Je viens de faire une nouvelle version.
Qui prend en compte le fonctionnement des coches « Afficher nom » et « Afficher le nom et l’icône ».
Attention, lorsque l’on choisit afficher le nom et qu’il y a un icône sur la commande seul l’icône s’affiche (c’est le fonctionnement de Jeedom)
J’ai ajouté d’autres paramètres pour changer :
Un icône différent de la commande (affichage dans le widget)
Un nom différent pour la commande (affichage dans le widget)
Les icones qui d’affiche lors d’une valeur vrai/faux