Bonjour,
Sur ma machine de dev qui est un LXC Proxmox dont voici la page santé :
je rencontre les 2 phénomènes en titre alors que je développe un nouveau plugin (MyModbus Server) sans jQuery :
1. Réinterprétation ou réimport de desktop/js/pluginid.js
Le fichier desktop/js/mymodbusserver.js est interprété une fois supplémentaire après sauvegarde de l’équipement une fois sur deux. Une variable est déclarée de cette façon :
console.log('mymodbusserver.js loaded', Date());
const emptyMyModbusServerCmd = {type: 'info', subType: 'numeric', configuration: {cmdFormat: 'h', cmdRegisterType: 'hr'}};
Après sauvegarde de l’équipement, qu’il y ait une commande ou pas, un message d’erreur est lancé :
Uncaught SyntaxError: Identifier 'emptyMyModbusServerCmd' has already been declared (at getResource.php?file=plugins/mymodbusserver/desktop/js/mymodbusserver.js&md5=66760a951861e200ca13eb7aae522dae&lang=fr_FR:1:1)
En remplaçant la déclaration const par var, je n’ai plus l’erreur, logique…
Voici un gif de ce qui se passe :

Curieusement, la ligne qui affiche l’heure courante juste pour faire du debug n’est pas doublée avec une heure différente.
2. Affichage des commandes avec l’affichage par défaut du core
La raison pour laquelle je poste ces 2 erreurs ensemble c’est parce qu’elles se produisent en même temps. Quand j’ai l’erreur dans le console, les commandes sont affichées avec la fonction par défaut du core :

Les entêtes de colonne à afficher sont bien celles de mon plugin, mais le contenu est celui du core.
Pour le premier problème, j’utilise var au lieu de const, c’est pas élégant mais ça a le mérite de ne pas générer d’erreur, mais pour le second, je suis paumé…
Moi, je sais à peu près coder en python et en php mais je ne suis pas un pro de JS du tout. Franchement, je ne sais pas dans quelle direction chercher l’erreur que j’ai faite.
J’ai l’impression que le rafraichissement de la page est plus long une fois sur deux : une fois c’est rapide et ça utilise la fonction du core et l’autre, c’est un peu plus long et ça utilise ma fonction.
Quelqu’un pourrait m’aiguiller SVP ?
Est-ce qu’il faut plus de code pour comprendre d’où le problème peut venir ?
A+
Michel


