pages

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

templ: version: v0.3.1020

templ: version: v0.3.1020

Index

Constants

View Source
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, in the same style as the rest of the interface: 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 Projetos

func Projetos(ps []postgres.ResumoProjeto) templ.Component

func Run

func Run(r run.Run, logs []postgres.LogDoPasso) templ.Component

Run mostra uma execucao. O cabecalho vem do servidor ja renderizado; so a DAG com o estado de cada passo depende de JavaScript.

func Runs

func Runs(runs []postgres.ResumoRun, f FiltroRuns, total int) templ.Component

func Workflow

func Workflow(w wf.Workflow, ultimas []postgres.ResumoRun) templ.Component

Workflow mostra a definicao publicada. Sem estado de execucao: e a tela de "como este workflow e", e precisa servir tambem um workflow que nunca rodou.

func Workflows

func Workflows(ws []postgres.ResumoWorkflow, tags []string, f Filtro, total, filtrados int) templ.Component

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

func (f Filtro) Com(campo, valor string) string

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

func (f Filtro) ComOrdem(campo string) string

ComOrdem alterna a direcao quando o campo ja e o ordenado, e comeca ascendente quando e outro — o comportamento que qualquer tabela ensina.

func (Filtro) ComPagina

func (f Filtro) ComPagina(n int) string

ComPagina navega sem tocar em mais nada.

func (Filtro) Seta

func (f Filtro) Seta(campo string) string

Seta e o indicador de direcao no cabecalho.

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.

func (Paginacao) Janela

func (p Paginacao) Janela() []int

Janela devolve os numeros de pagina a mostrar, centrados no atual. Listar todas quebraria o rodape com cem paginas.

func (Paginacao) Paginas

func (p Paginacao) Paginas() int

func (Paginacao) Primeiro

func (p Paginacao) Primeiro() int

func (Paginacao) Ultimo

func (p Paginacao) Ultimo() int

type ProximaExecucao

type ProximaExecucao struct {
	Workflow string
	Cron     string
	Timezone string
	Quando   time.Time
}

ProximaExecucao e um disparo futuro, ja calculado a partir do cron.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL