Cette fonction ajoute au DOM de la page le contenu d'un singleton Cockpit. Il sera intégré à l'intérieur d'un élément HTML pré-existant, qui servira de conteneur. On passe uniquement le nom du singleton
et le container
à la fonction. Attention, dans cet exemple, le singleton ne doit contenir qu'un seul champ appelé content
. Ne pas oublier de remplacer l'adresse menant vers votre installation de Cockpit et votre jeton (ou token, en anglais) pour l'API.
function printSingleton(container, singleton) { //supports only: singleton with one HTML field named "content"
if(ajaxReady) {
ajaxReady = false;
console.log("Printing singleton : ", singleton);
// Prepare Request
var request = new XMLHttpRequest();
request.open('POST', 'https://YOURWEBISTE.COM/COCKPIT/singletons/get/' + singleton + '?token=YOUR_TOKEN', true);
request.onload = function() {
var data = JSON.parse(this.response);
if (request.status >= 200 && request.status < 400) {
container.innerHTML = data.content;
ajaxReady = true;
} //end request if status=OK
else { // error management, doesn't seem to work
console.log("Cannot load singleton.");
var error = document.createElement("div");
error.textContent("Impossible de charger l'élément.");
container.appendChild(error);
}
} // end request function
// Send request
request.setRequestHeader('Content-Type', 'application/json');
request.send();
} // end if ajaxReady
} // end function
Pour que la requête puisse être autorisée, il faudra également configurer l'API de Cockpit (Settings > API Access > Rules) en y ajoutant la règle suivante :
/api/singletons/get