Bonjour les amis,
petite question sur le passage en 4.5, vu qu’il n’y a plus potentiellement de jquery, je teste comment mapper tous les codes.
pour les appels asynchrones dans configuration.php pour les boutons je suis passé par fetch() qui envoie bien l’info au serveur jeedom et côté ajax j’ai du adapter le code, car la variable $_POST ne s’initialise pas =>
voilà le côté émission :
document.getElementById('bt_tcpdetect').addEventListener('click', function () {
fetch('plugins/jee4lm/core/ajax/jee4lm.ajax.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ action: 'tcpdetect' })
})
.then(response => response.json())
.then(data => {
if (data.state !== 'ok') {
jeedomUtils.showAlert({ message: data.result, level: 'danger' });
return;
}
jeedomUtils.showAlert({ message: '{{Détection réussie, regardez les logs}}', level: 'success' });
})
.catch(error => handleAjaxError(null, null, error));
});
et réception :
$data = json_decode(file_get_contents('php://input'), true);
if (is_array($data)) {
foreach ($data as $key => $value) {
$_POST[$key] = $value;
}
}
$action = init('action');
log::add('jee4lm', 'debug', ' action request = (' . $action. ')');
switch ($action) {
case 'login':
tout fonctionne bien à un détail près. sur chrome (mac os) quand on utilise jquery on a le signe d’attente qui mouline le temps du traitement et ensuite le message de statut.
sur ce type d’appel, le signe d’attente (« le sablier ») ne s’affiche plus, du coup comment fait-on pour l’afficher en 4.5 pendant la durée du fetch ?
faut-il ajouter du code avant le fetch avec un await devant ?
merci par avance pour vos retours d’expérience sur ce sujet, j’avoue que je galère un peu à supprimer jquery sur mes codes spécifiques ![]()