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 :