Antoinekl1 a écrit : ↑21 mars 2019, 16:52
cadavor a écrit : ↑21 mars 2019, 16:27
Oui, ça met à jour le chemin de l'image à afficher.
Les autres méthodes comme html() ou append() servent a écrire du code html complet pour modifier le contenu d'un conteneur (div, span par exemple). La balise img n'est pas un conteneur (pas de fermeture de balise </img>)
c'est plus claire merci
et la commande : $('.cmd[data-cmd_uid=#uid#] .iconCmd').empty(); ou parfois le .empty se trouve avant un .html ?
si je comprends bien le principe, avec ce code
Code : Tout sélectionner
<div style="width:90px; min-height:80px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" title="#collectDate#">
<div class="row"><center>
<span class="cmdName" style="font-weight: bold;font-size : 12px; #hideCmdName#">#name_display#</span><br />
<span class='label label-info' style="font-size: 11px;">#state#</span><br>
<span style="font-size: 2.5em; font-weight: bold; margin-top: 5px;" class="iconCmd"></span>
</center></div>
<!-- Ne Pas Supprimer -->
<script class="createWidgetInfo" type="text/javascript">//<![CDATA[{"type":"0","version":"1","size":"2.5","icon1":"<i class='icon jeedom-feu'></i>","icon2":"<i class='icon jeedom-off'></i>","icon3":"<i class='icon loisir-beach4'></i>","icon4":"<i class='icon transport-car95'></i>","icon5":"<i class='icon techno-fingerprint41'></i>","icon6":"<i class='icon divers-thermometer31',"icon7":"<i class='icon maison-toilet1'></i>"}]]></script>
<!-- Ne Pas Supprimer -->
<script>
jeedom.cmd.update['#id#'] = function(_options){
$('.cmd[data-cmd_uid=#uid#] .iconCmd').empty();
if (_options.display_value == "On") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='iicon jeedom-feu'></i>");
}
if (_options.display_value == "Off") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon jeedom-off'></i>");
}
if (_options.display_value == "Vacances") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon loisir-beach4'></i>");
}
if (_options.display_value == "Absent") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon transport-car95'></i>");
}
if (_options.display_value == "Manuel") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon techno-fingerprint41'></i>");
}
if (_options.display_value == "Consigne-1") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon divers-thermometer31'></i>");
}
if (_options.display_value == "PresenForce") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon maison-toilet1'></i>");
}
$('.cmd[data-cmd_uid=#uid#] .label-info').html(State);
$('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate);
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
</div>
le "$('.cmd[data-cmd_uid=#uid#] .label-info').html(State);" va mettre à jour la valeur de la ligne "<span class='label label-info' style="font-size: 11px;">#state#</span>"
Techniquement oui, ca va mettre à jour le contenu du conteneur span dont la classe est .label-info.
Sauf que la variable State n'existe pas! Il faut remplacer dans le code par "_options.display_value" si tu veux écrire la valeur reçue.
Antoinekl1 a écrit : ↑21 mars 2019, 16:52
les append "$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon maison-toilet1'></i>");" vont mettre le bon code pour afficher l'icone dans la ligne "<span style="font-size: 2.5em; font-weight: bold; margin-top: 5px;" class="iconCmd"></span>"
Pareil mise à jour du contenu du conteneur span dans la classe est .iconCmd.
On pourrait remplacer les append() par html() le résultat serait le même.
Antoinekl1 a écrit : ↑21 mars 2019, 16:52
et pour le #name_display#, pas la peine de le mettre à jour car il ne change pas
Tout à fait, tout comme #unite# utilisé dans certains widget.
Car lors d'un changement de nom ou d'unité, il faut sauvegarder la commande ce qui a pour effet de mettre à jour le widget automatiquement (comme un F5)
Par contre voici un code plus propre et corrigé :
Code : Tout sélectionner
<div style="width:90px; min-height:80px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" title="#collectDate#">
<div class="row"><center>
<span class="cmdName" style="font-weight: bold;font-size : 12px; #hideCmdName#">#name_display#</span><br />
<span class='label label-info' style="font-size: 11px;">#state#</span><br>
<span style="font-size: 2.5em; font-weight: bold; margin-top: 5px;" class="iconCmd"></span>
</center></div>
<!-- Ne Pas Supprimer -->
<script class="createWidgetInfo" type="text/javascript">//<![CDATA[{"type":"0","version":"1","size":"2.5","icon1":"<i class='icon jeedom-feu'></i>","icon2":"<i class='icon jeedom-off'></i>","icon3":"<i class='icon loisir-beach4'></i>","icon4":"<i class='icon transport-car95'></i>","icon5":"<i class='icon techno-fingerprint41'></i>","icon6":"<i class='icon divers-thermometer31',"icon7":"<i class='icon maison-toilet1'></i>"}]]></script>
<!-- Ne Pas Supprimer -->
<script>
jeedom.cmd.update['#id#'] = function(_options){
$('.cmd[data-cmd_uid=#uid#] .iconCmd').empty();
if (_options.display_value == "On") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon jeedom-feu'></i>");
}
else if (_options.display_value == "Off") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon jeedom-off'></i>");
}
else if (_options.display_value == "Vacances") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon loisir-beach4'></i>");
}
else if (_options.display_value == "Absent") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon transport-car95'></i>");
}
else if (_options.display_value == "Manuel") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon techno-fingerprint41'></i>");
}
else if (_options.display_value == "Consigne-1") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon divers-thermometer31'></i>");
}
else if (_options.display_value == "PresenForce") {
$('.cmd[data-cmd_uid=#uid#] .iconCmd').append("<i class='icon maison-toilet1'></i>");
}
$('.cmd[data-cmd_uid=#uid#] .label-info').html(_options.display_value);
$('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate);
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
</div>