Jeedom 4.4 : pas d'update des widgets après action en mobile uniquement

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 ?

Bonsoir,

J’ai testé, il marche correctement chez moi.

Tu as peut-être un autre widget mobile qui est en erreur, regarde si c’est le cas en console.

Hello,

J’ai pas encore trouvé mais j’ai cette erreur

image

Pour tester j’ai fais une nouvelle pièce avec juste ce widget dedans et ça crash déjà malheureusement
image

Bonjour,
C’est quoi le code du widget ? C’est du perso ca non ? Attention le code en mobile et desktop n’est pas le meme.

C’est le code dans le post initial, oui c’est du custom, et j’ai créé une version mobile et une version desktop, dans le post, c’est la version mobile, mais il fonctionne sur une instance vide visiblement, et chez @Phpvarious, il semblerait qu’en migration depuis 4.3 un truc se pête mais que ça marche sur du vanila 4.4, j’ai pas encore trouvé ce qu’il se casse depuis les objets déjà présent avant la 4.4

Bizarre car la l’erreur parle de jeedomUI mais dans ton widget ya pas c’est étrange, essaye la branche alpha et voir si l’erreur est toujours la j’ai fait un changement.

1 « J'aime »

ça fonctionne en alpha :slight_smile: y compris avec les objets pré 4.4

Cool ma correction est la bonne alors, ca sera disponible dans la prochaine stable donc. Merci pour tes tests.

1 « J'aime »

c’est en lien avec mon code ? c’est quoi par curiosité ?

Merci beaucoup

Non je pense que c’est un effet de bord de la correction du soucis de déplacement des widgets sur le Dashboard, rien a voir avec ton code c’est un bug de mon coté.

Super merci,

Je reste alpha pour le moment mais je coupe la maj, dès que 4.4.4 sort je repasse en stable ?

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.