From f3663fb28ca037aa52ae9b2dbfe8691225ca2a22 Mon Sep 17 00:00:00 2001 From: mls-361 Date: Sun, 22 Aug 2021 21:45:28 +0200 Subject: [PATCH] =?UTF-8?q?En=20cours=20de=20d=C3=A9veloppement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/gui/dashboard.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/internal/gui/dashboard.go b/internal/gui/dashboard.go index 429b261..64d1240 100644 --- a/internal/gui/dashboard.go +++ b/internal/gui/dashboard.go @@ -7,6 +7,7 @@ package gui import ( + "fmt" "strconv" "forge.chapril.org/armen/jw" @@ -41,13 +42,13 @@ func (d *dashboard) empty() g.Node { ) } -func (d *dashboard) value(name string, value int) g.Node { +func (d *dashboard) value(name string, value int, url string) g.Node { return Div( Class("value"), A( Class("label"), g.Text(name), - Href("/"), + Href(url), ), Span( Class(name), @@ -57,19 +58,22 @@ func (d *dashboard) value(name string, value int) g.Node { } func (d *dashboard) metrics(ms *jw.Metrics) g.Node { + const jobURL = "/gui/job/list?status=%s" + const wfURL = "/gui/workflow/list?status=%s" + return Div( Class("metrics"), Div( Class("panel"), Div( d.title("Jobs"), - d.value(string(jw.StatusTodo), ms.Jobs.Todo), - d.value(string(jw.StatusPending), ms.Jobs.Pending), - d.value(string(jw.StatusRunning), ms.Jobs.Running), - d.value(string(jw.StatusSucceeded), ms.Jobs.Succeeded), - d.value(string(jw.StatusFailed), ms.Jobs.Failed), + d.value(string(jw.StatusTodo), ms.Jobs.Todo, fmt.Sprintf(jobURL, jw.StatusTodo)), + d.value(string(jw.StatusPending), ms.Jobs.Pending, fmt.Sprintf(jobURL, jw.StatusPending)), + d.value(string(jw.StatusRunning), ms.Jobs.Running, fmt.Sprintf(jobURL, jw.StatusRunning)), + d.value(string(jw.StatusSucceeded), ms.Jobs.Succeeded, fmt.Sprintf(jobURL, jw.StatusSucceeded)), + d.value(string(jw.StatusFailed), ms.Jobs.Failed, fmt.Sprintf(jobURL, jw.StatusFailed)), Hr(), - d.value("total", ms.Jobs.Total), + d.value("total", ms.Jobs.Total, "/gui/job/list"), ), ), Div( @@ -78,11 +82,11 @@ func (d *dashboard) metrics(ms *jw.Metrics) g.Node { d.title("Workflows"), d.empty(), d.empty(), - d.value(string(jw.StatusRunning), ms.Workflows.Running), - d.value(string(jw.StatusSucceeded), ms.Workflows.Succeeded), - d.value(string(jw.StatusFailed), ms.Workflows.Failed), + d.value(string(jw.StatusRunning), ms.Workflows.Running, fmt.Sprintf(wfURL, jw.StatusRunning)), + d.value(string(jw.StatusSucceeded), ms.Workflows.Succeeded, fmt.Sprintf(wfURL, jw.StatusSucceeded)), + d.value(string(jw.StatusFailed), ms.Workflows.Failed, fmt.Sprintf(wfURL, jw.StatusFailed)), Hr(), - d.value("total", ms.Workflows.Total), + d.value("total", ms.Workflows.Total, "/gui/workflow/list"), ), ), )