Hello à tous,
Je passe pas mal de temps à debug ce widget que je possède depuis au moins 3 ans : Check Slider Jour
J’ai un bug uniquement en version mobile avec le même code
<div style="width:100%;min-height:20px;" class="cmd cmd-widget" data-type="action" data-subtype="slider" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" >
<center>
<span class="cursor iconCmd#uid#" style="font-size: 1.5em;">
<span class="cmdName" style="#hideCmdName#">#valueName#</span>
<!-- <span class="cmdName" style="#hideCmdName#">#name_display#</span> -->
</span>
</center>
<script>
/*$('.iconCmd#id#').empty();
if (parseInt('#state#') > 0) {
$('.iconCmd#uid#').append('<i class="icon jeedom2-case_ok"></i>');
$('.iconCmd#uid#').attr('data-state', 'on');
}else {
$('.iconCmd#uid#').append('<i class="icon jeedom2-case"></i>');
$('.iconCmd#uid#').attr('data-state', 'off');
}*/
$('.iconCmd#uid#').off().on('click', function() {
if ($(this).attr('data-state') == 'on') {
jeedom.cmd.execute({id: '#id#', value: {slider: 0}});
} else {
jeedom.cmd.execute({id: '#id#', value: {slider: 1}});
}
event.preventDefault()
event.stopPropagation()
});
jeedom.cmd.addUpdateFunction('#id#', function(_options){
console.log(_options.display_value);
$('.iconCmd#uid# i.icon').remove();
if (_options.display_value > 0) {
$('.iconCmd#uid#').append('<i class="icon jeedom2-case_ok"></i>');
$('.iconCmd#uid#').attr('data-state', 'on');
}else {
$('.iconCmd#uid#').append('<i class="icon jeedom2-case"></i>');
$('.iconCmd#uid#').attr('data-state', 'off');
}
});
jeedom.cmd.refreshValue([{cmd_id :'#id#',display_value: '#state#', valueDate: '#valueDate#', collectDate: '#collectDate#', alertLevel: '#alertLevel#', unit: '#unite#'}])
</script>
</div>
Le bug est le suivant : son état ne se rafraichit pas sans sortir entrer de nouveau dans la section où il y a l’équipement,
J’ai mi un console log pour voir si l’update est appelé mais c’est jamais appelé sauf la première fois.
Sur la version « desktop » : pas de soucis, le widget change même lors d’une action extérieure.
Avez vous des pistes svp ?