Membuat gambar dasbor dinamis dengan Liquid dan HTML

Anda dapat menambahkan gambar ke dasbor Looker dengan melakukan hard-coding pada URL gambar dalam ubin teks Markdown. Namun, gambar dalam petak teks bersifat statis dan tidak akan diperbarui berdasarkan hasil. Bagaimana jika Anda ingin gambar dasbor berubah secara dinamis berdasarkan nilai filter yang dipilih pengguna?

Halaman Praktik Terbaik ini menunjukkan cara menampilkan gambar dasbor dinamis menggunakan Liquid dan parameter html.

Solusi

Solusi berikut didasarkan pada set data e-commerce yang menyertakan kolom bernama users.state, yang mewakili status dalam set data e-commerce fiktif:

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

Misalnya Anda ingin menampilkan gambar flag status di dasbor yang akan diperbarui berdasarkan status yang dipilih pengguna untuk memfilter hasil dasbor.

Ada tiga langkah yang perlu Anda selesaikan untuk membuat gambar dasbor dinamis:

  1. Membuat dimensi gambar dalam LookML.
  2. Buat kartu dasbor gambar dinamis.
  3. Tambahkan filter dasbor dan sentuhan akhir.

Langkah 1: Buat dimensi gambar di LookML

Untuk membuat dimensi gambar di LookML:

  1. Pertama, buka project dan file tampilan yang berisi dimensi yang ingin Anda tambahi gambar. Kemudian, buat dimensi baru berdasarkan kolom tersebut, khususnya untuk penggunaan menampilkan gambar.
  2. Tambahkan parameter html untuk menentukan pernyataan bersyarat {% dynamic if %} Liquid dengan variabel value, untuk setiap nilai yang gambarnya ingin Anda tampilkan.

    Misalnya, dimensi state_flag_image di bawah menetapkan kondisi untuk menampilkan gambar yang ditentukan (dengan tag html <img> ) saat nilai state adalah "California", "New York", "Colorado", atau "Illinois". Untuk semua status lainnya, Anda dapat menampilkan ikon "tidak ada gambar yang tersedia":

          dimension: state_flag_image {
              type: string
              sql: ${state} ;;
              html:
                  {% dynamic 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">
                  {% dynamic 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">
                  {% dynamic endif %} ;;
          }
    
  3. Buat kondisi nilai untuk setiap nilai yang gambarnya ingin Anda tampilkan. Atau, Anda dapat membuat kolom gambar dinamis menggunakan variabel Liquid value, seperti yang dijelaskan di Postingan komunitas Cara menambahkan gambar ke visualisasi.

Selanjutnya, Anda dapat membuat ubin dasbor untuk dimensi gambar.

Langkah 2: Buat kartu dasbor gambar dinamis

Setelah dimensi gambar (state_flag_image) dibuat, Anda dapat membuat Jelajah yang akan menjadi kartu dasbor gambar dinamis.

Buat bagian Jelajahi dengan kriteria berikut:

  • Tambahkan filter untuk dimensi asli (dalam hal ini, state). Tetapkan filter untuk nilai apa pun (tanda status akan menampilkan gambar "gambar tidak tersedia" dalam kasus ini, karena tidak ada nilai filter tertentu yang dipilih). Nilai filter ini akan diperbarui sesuai dengan apa yang dipilih pengguna untuk filter dasbor. 
  • Pilih dimensi gambar (dalam hal ini, state_flag_image) dan dimensi lain yang mungkin diperlukan untuk kueri yang menentukan gambar (misalnya, jika ingin mempertimbangkan tanggal, Anda dapat menyertakan tanggal, dll.).
  • Ubah batas baris menjadi satu baris.
  • Ubah jenis visualisasi menjadi visualisasi nilai tunggal dan sembunyikan kolom lainnya kecuali dimensi gambar (state_flag_image). 

Eksplorasi Anda akan menampilkan hasil gambar pertama dalam visualisasi nilai tunggal yang dirender di panel Visualisasi. Gambar tampilan akan berubah berdasarkan nilai filter yang dipilih pengguna di dasbor akhir:

Simpan Explore ke dasbor sebagai kartu.

Langkah 3: Tambahkan filter dasbor dan sentuhan akhir

Sekarang Anda perlu menambahkan filter dasbor ke dasbor. Filter di dasbor akan memperbarui filter di bagian Jelajahi untuk mengubah gambar yang ditampilkan berdasarkan pilihan pengguna.

Dari mode edit dasbor, buat filter:

  • Buka jendela Tambahkan filter
  • Pilih kolom yang akan digunakan untuk memfilter. Kolom filter harus berupa dimensi yang menjadi dasar dimensi gambar. Dalam kasus contoh ini, kolom untuk filter akan menjadi state.
  • Pilih ubin gambar dari Langkah 2 di tab Tiles to Update.
  • Pilih dimensi asli (dalam kasus ini, state) di menu drop-down state.
  • Pilih ubin lain untuk diperbarui sesuai keinginan.
  • Sesuaikan filter sesuai keinginan. Jika Anda memilih opsi kontrol Lanjutan, pastikan untuk membatalkan pilihan opsi Izinkan beberapa nilai filter, yang secara otomatis diaktifkan untuk opsi kontrol Lanjutan.

Sekarang, ubin gambar akan diperbarui dengan pilihan filter pengguna.

Saat pengguna memilih untuk memfilter menurut "California", dasbor akan menampilkan bendera negara bagian dan data untuk negara bagian California:

Saat pengguna memilih untuk memfilter menurut "Colorado", dasbor akan menampilkan bendera negara bagian dan data untuk negara bagian Colorado: