Comment afficher des données serveur spécifiques sur une représentation ?

Prérequis

Afin de pouvoir suivre ce guide, il faut préalablement savoir Comment déclencher un code javascript lors de la sélection d’un menu spécifique ?.

Comment procéder ?

Dans notre exemple, on souhaite afficher le dernier message d’historique d’un Smart Element BOISSON. L’information sera calculée du serveur grâce à la méthode getCustomServerData et sera récupérée côté client grâce à la méthode getCustomServerData.

Recommandations

Si vous n’êtes pas familier avec la méthode getCustomServerData côté serveur, il est recommandé de lire la documentation associée disponible ici

De même, si vous n’êtes pas familier avec la méthode getCustomServerData côté client, il est recommandé de lire la documentation associée disponible ici

Modifier le fichier src/vendor/Cogip/Restauratec/SmartStructures/Boisson/Render/BoissonViewRender.php :











 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


<?php

namespace Cogip\Restauratec\SmartStructures\Boisson\Render;

use Cogip\Restauratec\SmartStructures\Consommable\Render\ConsommableViewRender;
use SmartStructure\Fields\Boisson as BoissonFields;

class BoissonViewRender extends ConsommableViewRender
{

    public function getCustomServerData(\Anakeen\Core\Internal\SmartElement $document)
    {
        $histo = $document->getHisto();
        return [
            "history" => $histo[0]
        ];
    }

    public function getJsReferences(\Anakeen\Core\Internal\SmartElement $document = null)
    {
        $jsRefs = parent::getJsReferences($document);
        $jsRefs['boissonView'] = new \Anakeen\Ui\JsAssetReference("/boissonView.js");
        return $jsRefs;
    }

}

Créer le fichier JavaScript src/public/boissonView.js :

window.ank.smartElement.globalController.registerFunction("boissonView", (controller) => {
  controller.addEventListener("ready", function getHistory(event, smartElement) {
    const data = controller.getCustomServerData();
    alert(`Dernière Opération : ${data.history.comment}`);
  });
});

Vous pouvez maintenant déployer vos modifications :

npx @anakeen/anakeen-cli deploy -c http://localhost:8080/control -s . -u admin -p anakeen --reinstall

Et voir le résultat sur une BOISSON en consultation :

customServerData

Et ensuite ?

Comment modifier le résultat d’une aide à la saisie ?