Documentation
¶
Overview ¶
templ: version: v0.3.1020
templ: version: v0.3.1020
Index ¶
- Constants
- func Login(d DadosLogin) templ.Component
- func Overview(d DadosOverview) templ.Component
- func Projetos(ps []postgres.ResumoProjeto) templ.Component
- func Run(r run.Run, logs []postgres.LogDoPasso) templ.Component
- func Runs(runs []postgres.ResumoRun, f FiltroRuns, total int) templ.Component
- func Workflow(w wf.Workflow, ultimas []postgres.ResumoRun) templ.Component
- func Workflows(ws []postgres.ResumoWorkflow, tags []string, f Filtro, total, filtrados int) templ.Component
- type DadosLogin
- type DadosOverview
- type Filtro
- type FiltroRuns
- type Paginacao
- type ProximaExecucao
Constants ¶
const PorPaginaPadrao = 25
PorPaginaPadrao e o tamanho de pagina das listas. Vinte e cinco cabe numa tela de laptop sem rolagem interminavel e sem obrigar a paginar a cada olhada.
Variables ¶
This section is empty.
Functions ¶
func Login ¶
func Login(d DadosLogin) templ.Component
Login e a tela de entrada, no mesmo padrao do zarv-lens: fundo de grade com halo no acento, marca centralizada acima, e um cartao unico com anel luminoso.
Fica FORA do layout Base: a barra lateral navega para telas que esta sessao ainda nao pode ver, e oferecer esses links a quem nao entrou so produz uma volta ao proprio login.
func Overview ¶
func Overview(d DadosOverview) templ.Component
func Run ¶
Run mostra uma execucao. O cabecalho vem do servidor ja renderizado; so a DAG com o estado de cada passo depende de JavaScript.
Types ¶
type DadosLogin ¶
type DadosLogin struct {
// Destino e para onde voltar depois de entrar. Ja saneado por auth.Destino.
Destino string
// Erro aparece acima do formulario. Uma mensagem so, e generica de
// proposito: distinguir "usuario nao existe" de "senha errada" entrega a
// quem tenta adivinhar qual das duas metades ja acertou.
Erro string
}
DadosLogin e o estado da tela de entrada.
type DadosOverview ¶
type DadosOverview struct {
Janela time.Duration
Ind postgres.Indicadores
Baldes []postgres.Balde
EmCurso []postgres.ResumoRun
Proximas []ProximaExecucao
Recentes []postgres.ResumoRun
Pendentes int
}
DadosOverview e tudo que a tela inicial mostra. Um struct em vez de sete parametros: a assinatura ja estava ilegivel com quatro.
type Filtro ¶
type Filtro struct {
Busca string
Estado string // ultimo estado: failed, queued, running, success
Ativo string // active | paused
Tag string
// Ordem e o campo de ordenacao; Desc inverte. Vivem na URL pelo mesmo motivo
// dos filtros: uma tela ordenada precisa poder ser colada para outra pessoa.
Ordem string
Desc bool
Pagina int
PorPagina int
}
Filtro guarda o estado da barra de busca. Vive na URL, nao em memoria: assim um filtro aplicado pode ser colado no chat de plantao e abre igual do outro lado.
func (Filtro) Com ¶
Com devolve a mesma URL trocando um campo — como cada chip vira link, o resto do filtro precisa sobreviver ao clique.
Trocar filtro sempre volta para a primeira pagina: continuar na pagina 7 de um resultado que agora tem duas seria uma tela vazia sem explicacao.
func (Filtro) ComOrdem ¶
ComOrdem alterna a direcao quando o campo ja e o ordenado, e comeca ascendente quando e outro — o comportamento que qualquer tabela ensina.
type FiltroRuns ¶
type FiltroRuns struct {
Estado string
Workflow string
De string // AAAA-MM-DDTHH, o mesmo formato que o grafico emite
Ate string
Rotulo string // descricao legivel do periodo, montada no servidor
Pagina int
PorPagina int
}
FiltroRuns e o recorte da tela de execucoes. Chega por query string, entao um grafico do dashboard pode apontar para "as execucoes daquela hora" com um link.
func (FiltroRuns) Ativo ¶
func (f FiltroRuns) Ativo() bool
Ativo diz se ha algum recorte — sem isso a tela mostraria a barra de "filtros aplicados" vazia.
func (FiltroRuns) Com ¶
func (f FiltroRuns) Com(campo, valor string) string
func (FiltroRuns) ComPagina ¶
func (f FiltroRuns) ComPagina(n int) string
type Paginacao ¶
type Paginacao struct {
Pagina int
PorPagina int
Total int
// LinkPagina monta a URL de cada pagina. Injetado para que o mesmo
// componente sirva /workflows e /runs, que tem filtros diferentes.
LinkPagina func(int) string
}
Paginacao e o rodape de qualquer lista paginada.