Improved workflow styling

This commit is contained in:
Achim Rohn
2026-04-05 11:53:23 +02:00
parent dda5ee266a
commit 1c1c68a8af
2 changed files with 251 additions and 18 deletions
@@ -104,12 +104,14 @@ func (p *Page) View(c HtmxContext) {
func (p *Page) triggerForm(c HtmxContext) Node {
lang := c.GetLanguage()
return Form(p.TriggerRoute.GetHtmx(lang),
hx.Target("#executions-list"),
hx.Swap("outerHTML"),
Div(Class("form-row"),
Input(Type("text"), Name("input"), Placeholder(texts.TriggerPlaceholder.FromLang(lang))),
Button(Type("submit"), Text(texts.TriggerButton.FromLang(lang))),
return Div(Class("trigger-form-card"),
Form(p.TriggerRoute.GetHtmx(lang),
hx.Target("#executions-list"),
hx.Swap("outerHTML"),
Div(Class("form-row"),
Input(Type("text"), Name("input"), Placeholder(texts.TriggerPlaceholder.FromLang(lang))),
Button(Type("submit"), Text(texts.TriggerButton.FromLang(lang))),
),
),
)
}
@@ -128,22 +130,34 @@ func (p *Page) executionItem(workflowId string, jobs []*ent.GeneralQueue) Node {
return jobs[i].CreatedAt.Before(jobs[j].CreatedAt)
})
jobNodes := make([]Node, 0, len(jobs))
for _, j := range jobs {
jobNodes = append(jobNodes, Div(Class("job-step"),
H4(Text(fmt.Sprintf("Step: %s", j.Name))),
P(Text(fmt.Sprintf("Status: %s", j.Status))),
P(Text(fmt.Sprintf("Tries: %d/%d", j.NumberOfTries, j.MaxRetries))),
If(j.ErrorMessage != "", P(Class("error-message"), Text(fmt.Sprintf("Error: %s", j.ErrorMessage)))),
If(len(j.Payload) > 0, Details(Summary(Text("Payload")), Pre(Class("payload-pre"), Text(fmt.Sprintf("%+v", j.Payload))))),
If(len(j.ResultPayload) > 0, Details(Summary(Text("Result")), Pre(Class("result-pre"), Text(fmt.Sprintf("%+v", j.ResultPayload))))),
jobNodes := make([]Node, 0, len(jobs)*2)
for i, j := range jobs {
statusClass := fmt.Sprintf("status-%s", j.Status)
jobNodes = append(jobNodes, Div(Class("step-node "+statusClass),
Div(Class("step-content"),
Span(Class("step-name"), Text(j.Name)),
Span(Class("step-status-badge"), Text(string(j.Status))),
),
Div(Class("step-details"),
If(j.ErrorMessage != "", P(Class("error-message"), Text(fmt.Sprintf("Error: %s", j.ErrorMessage)))),
If(len(j.Payload) > 0, Details(Summary(Text("Payload")), Pre(Text(fmt.Sprintf("%+v", j.Payload))))),
If(len(j.ResultPayload) > 0, Details(Summary(Text("Result")), Pre(Text(fmt.Sprintf("%+v", j.ResultPayload))))),
),
))
// Add connector if not last
if i < len(jobs)-1 {
jobNodes = append(jobNodes, Div(Class("step-connector "+statusClass)))
}
}
return Div(Class("execution-card"),
H3(Text(fmt.Sprintf("Execution: %s", workflowId))),
Div(Class("steps-list"), Group(jobNodes)),
Hr(),
Div(Class("execution-header"),
H3(Text("Workflow Execution")),
Span(Class("execution-id"), Text(fmt.Sprintf("ID: %s", workflowId))),
),
Div(Class("steps-flow"), Group(jobNodes)),
)
}