Buscar K
Aparência
Aparência
Uma presentation é uma Apresentação: uma sequência de Dashboards e Decks que roda num telão, em kiosk, publicada num link público /p/<código>. O arquivo fica em presentations/<slug>--<id>.yaml. Apresentações pela tela estão em Apresentações.
lumo new presentation --name "Telão da loja"fileName^[a-z0-9-]+--\d+\.yaml$headerheader.idheader.kindpresentation (fixo)header.lumov2 (fixo)header.tenantIdheader.appIdheader.dashboardIdbodybody.criado_em^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$body.criado_porbody.publicado_em^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$body.publicado_porbody.nomebody.descricaobody.dark_modebody.modeautomatic, manualbody.base_widthbody.itemsbody.items[].typedashboard, deckbody.items[].dashboardIdtype: dashboard · valores: ≥ 1body.items[].deckIdtype: deck · valores: ≥ 1body.items[].orderbody.items[].durationbody.items[].titlebody.items[].filtersUma Apresentação que alterna um Dashboard e um Deck.
# presentations/telao-loja--8131.yaml
# yaml-language-server: $schema=https://docs.horusbi.com.br/schemas/v2/presentation.schema.json
id: 8131
kind: presentation
lumo: v2
tenantId: 1200
---
nome: Telão da loja
dark_mode: true
mode: automatic # automatic avança sozinho; manual espera navegação
base_width: 1920 # largura da tela de destino, em pixels
items:
- type: dashboard
dashboardId: 9101 # obrigatório em type: dashboard
order: 0
duration: 15 # segundos na tela, para o Dashboard inteiro
title: Vendas
- type: deck
deckId: 8120 # obrigatório em type: deck
order: 1
duration: 20 # segundos POR SLIDE do Decklumo push presentation:8131
lumo presentation publish presentation:8131 # imprime o link público
lumo presentation check presentation:8131 # o link responde?
lumo presentation unpublish presentation:8131O check só lê o link e sai com código diferente de 0 se ele não responder. Por isso serve de portão em CI com um usuário sem permissão de publicar. lumo presentation open abre o editor, que é outro endereço.
---. Um arquivo com header: e body: aninhados é recusado com o erro missing body document.type: dashboard exige dashboardId; item type: deck exige deckId. O lint recusa o item sem o campo, ou com ele nulo.duration está sempre em segundos, mas mede coisas diferentes: num Dashboard é o tempo do item inteiro; num Deck é o tempo de cada slide. Um Deck de 4 slides com duration: 20 fica 80 s na tela. Com mode: manual, duration é ignorado.order, não da posição na lista.publicado e url são do servidor e não se mudam por push: use publish e unpublish.lumo deck publish basta.