Retour sur jeedom.cmd.execute

Yop!

Peut-on avoir un retour sur la commande jeedom.cmd.execute ?

Si dans le php du plugin, on fait un return True ou False, peut on le récuperer dans le js pour afficher une div alert danger ou success ?

J’ai essayé çà mais la fonction ne fait rien

    jeedom.cmd.execute({id: _Id_, notify: true, value: {select: programName}}, function (result) {
                            console.log('result from execute!!')
                            console.log(result.toString())
                            $('#div_alert').showAlert({message: result.toString(), level: 'success'})
                    })

En faite faut tu fasses un attributs success a l’objet passé en paramètre de la fonction et que cet attribut soit une fonction

Pas sur de tout comprendre mais j’essaye !

Bon apperemment faut faire un ajax::success($result);

Sauf que la fonction que j’appelle est une de mes fonctions dans le plugin.class.php execute()
Et quel est appellée aussi depuis les widgets.

Ok çà marche !

    jeedom.cmd.execute({
                        id: _setProgramId_,
                        value: {select: programName},
                        error: function (error) {
                            $('#div_alert').showAlert({message: error, level: 'danger'});
                        },
                        success : function(data){
                            $('#div_alert').showAlert({message: '{{Programme appliqué}}', level: 'success'})
                        }
                    })

Et du coup dans mon plugin.cass.php

public function execute($_options = array()) {
        $result = mafonction(retour array result['result'] ou $result['error']);
        if (isset($result['error']))
        {
            ajax::error($result['error']);
        }
        if ($result['result']==True)
        {
            $eqLogic->checkAndUpdateCmd('current_program', $program);
            $eqLogic->refreshWidget();
            ajax::success($result['result']);
        }
        return;
}

Après je suis pas sur que faire un retour ajax::xx depuis la fonction execute du plugin soit dans les règles :thinking:
Je peux toujours ajouter un paramètre pour savoir si çà viens du js de desktop ou d’un widget …

Vous en pensez quoi ?

Non non faut pas faire ça pas de ajax dans une class ça risque de coincer a pas mal d’endroit…

Si tu as une erreur tu remontes une exeption et c’est bon.

Sinon un return indique a jeedom que tout est ok.

On est d’accord.
Mais si en php je fait un return &bibi je vois pas comment récupérer bibi dans le js pour vérifier le retour et mettre l’alerte success ou danger.

C’est pas possible si soucis alors exception jeedom gère le reste

Donc je peux rien vérifier :no_mouth:

Aucune execption à lever c’est juste des résultats différent, pas de try/catch

Et je viens d’essayer quand même avec un throw ‹ bibi › j’ai bien l’alerte success et en console un ajax 500 internal server error.

Jamais aimé les trucs qui gèrent à ma place… Mais bon tant pis, y’aura pas d’alert utilisateur

En faite c’est pour que la gestion marche aussi en mode scénario où il n’y a pas d’interface…

Par contre le 500 c’est étrange normalement ça affiche un bandeau rouge avec le message en haut.

J’ai mis une bootbox sur le bouton, comme çà l’utilisateur sait ce qu’il fait …