Funzioni per sviluppatori

Questa parte delle istruzioni è rivolta agli sviluppatori che si occupano dell'integrazione con il banner di Elmo.

Esposizione dei consensi

L'oggetto window.Elmo, disponibile quando viene inizializzato il banner di Elmo, si arrichisce della proprietà window.Elmo.consents.
Questa proprietà è un array dove le categorie dei consensi sono impostate come chiave, mentre i valori sono dei booleani che ne indicano il consenso.

Callback sul consenso

Elmo espone una funzione di callback (window.ElmoOnAccept) che viene eseguita quando l'utente esprime un consenso.
Un esempio di codice Javascript che sfrutta le due proprietà nuove potrebbe essere il seguente:

//Inizializzo la funzione di callback
window.ElmoOnAccept = function () {
   //L'utente ha espresso un consenso e i consensi sono aggiornati
   console.log(window.Elmo.consents);   //Stampo in console i consensi aggiornati
   if (window.Elmo.consents.marketing) {
      //Se ho il consenso marketing faccio qualcosa, come lanciare uno script o mostrare un modal...in questo caso stampo in console
      console.log("Ho il consenso marketing");
   }
}

Aggiornare i consensi

Elmo espone una funzione di aggiornamento dei consensi (Elmo.accept) che viene eseguita per aggiornare i consensi dell'utente (come se fosse il tasto "Accetta tutti", "Accetta necessari" o "Accetta selezionati")

La funzione Elmo.accept accetta come parametro un array contenente le finalità dei cookie da accettare. 
Un elenco di finalità sempre aggiornato è esposto tramite l'oggetto Elmo.purposes, che contiene le stringhe da inserire nell'array da passare alla funzione

Un esempio di codice Javascript che sfrutta le nuove proprietà potrebbe essere il seguente:

//Resetto il consenso ai valori di default (solo necessari)
Elmo.accept();

//Imposto il consenso solo per marketing e necessari
Elmo.accept([
   Elmo.purposes.necessary,
   Elmo.purposes.marketing
]);

Aggiungere un consenso

Elmo espone una funzione per aggiungere uno specifico tipo di consenso (Elmo.addConsent). Un caso di utilizzo può essere se l'utente rifiuta il consenso marketing, ma questo serve per inviare i dati di un form.
In questo caso si potrebbe legare la funzione Elmo.addConsent alla checkbox del consenso del form, così da aggiornare in tempo reale i consensi di Elmo se l'utente accetta i consensi per inviare il form.

La funzione Elmo.addConsent accetta come parametro un array contenente le finalità dei cookie da aggiungere al consenso già presente.
Un elenco di finalità sempre aggiornato è esposto tramite l'oggetto Elmo.purposes, che contiene le stringhe da inserire nell'array da passare alla funzione.

Se l'utente ha già espresso il consenso a una finalità che viene passata a Elmo.addConsent , non succede niente, altrimenti viene aggiunta ai consensi dati dall'utente.

Un esempio di codice Javascript che sfrutta le nuove proprietà potrebbe essere il seguente:

//Aggiungo il consenso per marketing a quelli già espressi dall'utente.
Elmo.addConsent([
   Elmo.purposes.marketing
]);

Rimuovere un consenso

Elmo espone una funzione per rimuovere uno specifico tipo di consenso (Elmo.removeConsent). Un caso di utilizzo può essere se l'utente rifiuta il consenso marketing, ma questo serve per inviare i dati di un form.
In questo caso si potrebbe legare la funzione Elmo.removeConsent alla checkbox del consenso del form, così da aggiornare in tempo reale i consensi di Elmo se l'utente rifiuta i consensi per inviare il form.

La funzione Elmo.removeConsent accetta come parametro un array contenente le finalità dei cookie da rimuovere dal consenso già presente.
Un elenco di finalità sempre aggiornato è esposto tramite l'oggetto Elmo.purposes, che contiene le stringhe da inserire nell'array da passare alla funzione.

Se l'utente ha già espresso il consenso a una finalità che viene passata a Elmo.removeConsent questa viene rimossa, altrimenti non succede nulla.
La finalità Elmo.purposes.necessary è necessaria e NON può essere rimossa.

Un esempio di codice Javascript che sfrutta le nuove proprietà potrebbe essere il seguente:

//Rimuovo il consenso per marketing da quelli già espressi dall'utente.
Elmo.removeConsent([
   Elmo.purposes.marketing
]);