Creare un'immagine della dashboard dinamica con Liquid e HTML

Puoi aggiungere immagini alle dashboard di Looker inserendo l'URL di un'immagine hardcoded in un riquadro di testo Markdown. Tuttavia, le immagini nei riquadri di testo sono statiche e non vengono aggiornate in base ai risultati. Cosa succede se vuoi che un'immagine della dashboard cambi dinamicamente in base a un valore di filtro selezionato dall'utente?

Questa pagina delle best practice mostra come ottenere un'immagine dinamica della dashboard utilizzando Liquid e il parametro html.

La soluzione

La seguente soluzione si basa su un set di dati di e-commerce che include un campo denominato users.state, che rappresenta gli stati in un set di dati di e-commerce ipotetico:

dimension: state {
  type: string
  sql: ${TABLE}.state ;;
}

Supponiamo che tu voglia visualizzare l'immagine della bandiera di uno stato in una dashboard che si aggiornerà in base allo stato in base al quale un utente sceglie di filtrare i risultati della dashboard.

Per creare l'immagine della dashboard dinamica, devi completare tre passaggi:

  1. Crea una dimensione immagine in LookML.
  2. Crea un riquadro della dashboard con immagini dinamiche.
  3. Aggiungi i filtri della dashboard e gli ultimi ritocchi.

Passaggio 1: crea una dimensione immagine in LookML

Per creare una dimensione immagine in LookML:

  1. Innanzitutto, vai al progetto e visualizza il file contenente la dimensione a cui vuoi aggiungere le immagini. Quindi, crea una nuova dimensione basata su quel campo, in particolare per l'utilizzo della visualizzazione delle immagini.
  2. Aggiungi un parametro html per definire un'istruzione condizionale {% if %} di Liquid con la variabile value per ogni valore per cui vuoi visualizzare un'immagine.

    Ad esempio, la seguente dimensione state_flag_image stabilisce una condizione per la visualizzazione delle immagini specificate (con tag html <img> ) quando il valore di state è "California", "New York", "Colorado" o "Illinois". Per tutti gli altri stati, puoi visualizzare un'icona "Nessuna immagine disponibile":

          dimension: state_flag_image {
              type: string
              sql: ${state} ;;
              html:
                  {% if state._value == "California" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg" height="170" width="255">
                  {% elsif state._value == "New York" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_New_York.svg/1200px-Flag_of_New_York.svg.png" height="170" width="255">
                  {% elsif state._value == "Colorado" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Flag_of_Colorado.svg/255px-Flag_of_Colorado.svg.png" height="170" width="255">
                  {% elsif state._value == "Illinois"%}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_Illinois.svg/1200px-Flag_of_Illinois.svg.png" height="170" width="255">
                  {% else %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/No_image_available.svg/1024px-No_image_available.svg.png" height="170" width="170">
                  {% endif %} ;;
          }
        
  3. Crea una condizione di valore per ogni valore per cui vuoi visualizzare un'immagine. In alternativa, puoi creare un campo immagine dinamico utilizzando la variabile Liquid value, come descritto nel post per la community Come aggiungere immagini alle visualizzazioni.

Successivamente, puoi creare un riquadro della dashboard per la dimensione dell'immagine.

Passaggio 2: crea un riquadro della dashboard con immagini dinamiche

Ora che la dimensione dell'immagine (state_flag_image) è stata creata, puoi creare un'esplorazione che diventerà il riquadro della dashboard delle immagini dinamiche.

Crea l'esplorazione con i seguenti criteri:

  • Aggiungi un filtro per la dimensione originale (in questo caso, state). Imposta il filtro per qualsiasi valore. In questo modo, inizialmente verrà visualizzata l'immagine "Nessuna immagine disponibile", poiché non è selezionato alcun valore di filtro specifico. Questo valore del filtro verrà aggiornato in base a ciò che l'utente seleziona per il filtro della dashboard. 
  • Seleziona la dimensione dell'immagine (in questo caso, state_flag_image) e qualsiasi altra dimensione che potrebbe essere necessaria per la query che determina l'immagine (ad esempio, se vuoi tenere conto di una data, puoi includere la data e così via).
  • Modifica il limite di righe impostandolo su una riga.
  • Cambia il tipo di visualizzazione in una visualizzazione KPI (valore singolo) o valore singolo (legacy) e nascondi tutte le altre colonne, ad eccezione della dimensione dell'immagine (state_flag_image). 

Inizialmente, l'esplorazione mostrerà l'immagine "Nessuna immagine disponibile" nella visualizzazione del valore singolo visualizzata nel riquadro Visualizzazione. L'immagine visualizzata cambierà in base al valore del filtro selezionato dall'utente nella dashboard finale:

Salva l'esplorazione in una dashboard come riquadro.

Passaggio 3: aggiungi i filtri della dashboard e gli ultimi ritocchi

Ora devi aggiungere i filtri alla dashboard. I filtri nella dashboard aggiorneranno il filtro in Esplora per modificare l'immagine visualizzata in base alla selezione dell'utente.

Dalla modalità di modifica della dashboard, crea il filtro:

  • Apri la finestra Aggiungi filtro
  • Seleziona il campo in base al quale applicare il filtro. Il campo del filtro deve essere la dimensione su cui si basa la dimensione dell'immagine. In questo esempio, il campo per il filtro sarà state.
  • Seleziona il riquadro dell'immagine del passaggio 2 nella scheda Riquadri da aggiornare.
  • Seleziona la dimensione originale (state in questo caso) nel menu a discesa Campo da filtrare.
  • Seleziona altri riquadri da aggiornare, se vuoi.
  • Personalizza il filtro come preferisci. Se selezioni l'opzione di controllo Avanzato, assicurati di deselezionare l'opzione Consenti più valori di filtro, che viene attivata automaticamente per l'opzione di controllo Avanzato.

Ora il riquadro dell'immagine verrà aggiornato con la selezione del filtro utente.

Quando un utente sceglie di filtrare in base a "California", la dashboard mostra la bandiera dello stato e i dati relativi allo stato della California:

Quando un utente sceglie di filtrare in base a "Colorado", la dashboard mostra la bandiera e i dati dello stato del Colorado: