MigoThermostat et v4.4: Erreur Javascript

Bonjour:
J’obtiens l’erreur suivante avec le plugin MigoThermostat:

Je viens de migrer en Jeedom 4.4.2 sous Debian 11.
Le plugin est à jour.

Si le plugin est visible dans la vue ou le dashboard, l’erreur apparait.
J’ai créé une vue ne contenant que le plugin et l’erreur apparait.
Sur des vues ne contenant pas le plugin, l’erreur n’apparait pas.

Page santé:

1 « J'aime »

Bonjour
Oui sûrement datetimepicker qui a disparue du Core et que j’ai pas réussi à remettre pour l’instant.
On déjà le 04 Avril ? :face_with_head_bandage::face_with_head_bandage:
Et J’ai d’autres plugins qui seront impactés.

Salut,

Au cas où il y a les explications dans la doc développeurs:
https://doc.jeedom.com/fr_FR/dev/core4.4#Obsolete

De mémoire le plugin calendar gère les 2 libs en fonction de la version de Jeedom si ça peut servir d’exemple.

Il te reste aussi la solution d’embarquer la lib dans le code de tes plugins :

Salut

C’est la solution car j’ai besoin du bouton ok qui nécessite des fichiers supplémentaires.
J’avais organisé ça mais perdu mes sources. :face_with_head_bandage:

Hello,

Je le fais sur mes plugins :slight_smile:

if (jeeFrontEnd.jeedomVersion >= '4.4.0'){
    jeedomUtils.datePickerInit()
} else {
    $(".in_datepicker").datepicker()
}

Cordialement

1 « J'aime »

Je suis dessus mais je galère un peu il me faut date, time + bouton confirmer…
image
et je dois lancer depuis un lien texte(pas de input)

J’avoues que je comprends pas trop ce qu’il te faut de + que la lib datetimepicker ? Le fichier date-functions.js qui était dans le même dossier ?

Et bien je comprends pas pourquoi datetimepicker ne fonctionne pas même en incluant la lib…
Ou alors j’ai pas la bonne version du fichier

Tu as bien modifié tes include_file des css et js datetimepicker pour pointer sur ton plugin et plus sur le core ?

Tu as une erreur ?

Oui malgré l’inclusion jquery.datetimepicker.js et son css tjrs même erreur (datetimepicker is not a function)

Tu as rafraichis le navigateur ? Hésites pas si jamais tu as un accès à une machine de dev à me donner en privé.

Montre aussi le code car si c’est un widget qui en a besoin c’est un peu plus compliqué.

1 « J'aime »
 $('.eqLogic[data-eqLogic_uid=#uid#] .natimepicker').on('click', function () {
            var mode = $(this).attr('data-mode');
            $.datetimepicker.setLocale('fr');
            $('.eqLogic[data-eqLogic_uid=#uid#] .natimepicker').datetimepicker({
                    step: 15,
                    startDate: '0',
                    minDate: '0',
                    Date:'+1971/01/02',
                    todayButton:'true',
                    formatDate:	'd/m/Y',
                    onSelectTime:function(dp,$input){
                        if(mode == "manual"){
                            jeedom.cmd.execute({id: '#consigneset_id#', value: {'title': '', 'message': toTimestamp($input.val())}});
                        }
                        else{
                            jeedom.cmd.execute({id: '#setmode_id#', value: {'title': mode, 'message': toTimestamp($input.val())}});										}
                   }
});

c’est bien un widget mais j’ai un doute sur les fichiers que je trouve.
datetimepicker

Je vois pas le chargement du js datetimepicker la je vois meme pas de html du widget, pas de class eqlogic ni rien…

Si c’est dans un widget il faut que tu inclues les fichiers directement depuis le code du widget, tu peux tester dans cette idée en remplaçant #file_path# par le chemin de tes fichiers :

<script src="core/php/getJS.php?file=plugins/migothermostat/#file_path#/jquery.datetimepicker.js"></script>
<div class="cmd cmd-widget" data-type="info" data-subtype="numeric"....>
  <link rel="stylesheet" href="plugins/migothermostat/#file_path#/jquery.datetimepicker.css">
// et le reste de ton code actuel à la suite

Ce sont les fichiers de la lib datetimepicker de la dernière 4.3.23 (il faut enlever l’extension .txt) :
datetimepicker.zip.txt (35,9 Ko)

Je confirme avec le fichier jquery.datetimepicker.full.js ça semble OK mais pas avec celui de la 4.3.23.

Merci :grinning:

Une MAJ est en ligne @henribi tiens moi au jus.
@Loic

    if (!$('#datetimepicker_css').length) {  
      	$("head").append('<link id="datetimepicker_css" rel="stylesheet" href="plugins/naEnergie/core/template/dashboard/src/js/jquery.datetimepicker.min.css">');
    	
    }
  	if (!$('#datetimepicker_js').length) {  
      	$("head").append('<script id="datetimepicker_js" type="text/javascript" src="plugins/naEnergie/core/template/dashboard/src/js/jquery.datetimepicker.full.js"><\/script>');
    }

Pour éviter des requêtes multiples, je charge les fichiers comme ça sur les tuiles. Je trouve que c’est plus rapide pour le navigateur en cas d’équipements multiples.

Bonjour
À vérifier mais normalement le core gère déjà ça en gros si tu demande 2 fois le même fichier il le sait et ne le chargera que une fois

Effectivement c’est possible ! quand j’ai fais ça c’était pas encore le cas(d’après mes souvenirs).

Oui c’est arrivé après. Test quand même car j’avais des cas de lib qui posait soucis notamment quand elles ont un chargement différé (ou qu’elle recharge elle même d’autre fichier je)

1 « J'aime »