From 080dd77ff6ad4a882f1126c591767877791fffe7 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Sun, 14 Sep 2025 15:45:57 +0000 Subject: [PATCH] appview/pages: show labels in all issues view Signed-off-by: oppiliappan --- appview/issues/issues.go | 13 +++++++++++++ appview/pages/funcmap.go | 3 +++ appview/pages/pages.go | 1 + appview/pages/templates/labels/fragments/label.html | 8 ++++++++ appview/pages/templates/labels/fragments/labelDef.html | 6 ++++++ appview/pages/templates/repo/issues/issues.html | 16 +++++++++++++--- 6 file(s) changed, 44 insertion(s)(+), 3 deletion(s)(-) diff --git a/appview/issues/issues.go b/appview/issues/issues.go --- a/appview/issues/issues.go +++ b/appview/issues/issues.go @@ -785,10 +785,23 @@ rp.pages.Notice(w, "issues", "Failed to load issues. Try again later.") return } + labelDefs, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels)) + if err != nil { + log.Println("failed to fetch labels", err) + rp.pages.Error503(w) + return + } + + defs := make(map[string]*db.LabelDefinition) + for _, l := range labelDefs { + defs[l.AtUri().String()] = &l + } + rp.pages.RepoIssues(w, pages.RepoIssuesParams{ LoggedInUser: rp.oauth.GetUser(r), RepoInfo: f.RepoInfo(user), Issues: issues, + LabelDefs: defs, FilteringByOpen: isOpen, Page: page, }) diff --git a/appview/pages/funcmap.go b/appview/pages/funcmap.go --- a/appview/pages/funcmap.go +++ b/appview/pages/funcmap.go @@ -29,6 +29,9 @@ return template.FuncMap{ "split": func(s string) []string { return strings.Split(s, "\n") }, + "join": func(elems []string, sep string) string { + return strings.Join(elems, sep) + }, "contains": func(s string, target string) bool { return strings.Contains(s, target) }, diff --git a/appview/pages/pages.go b/appview/pages/pages.go --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -887,6 +887,7 @@ LoggedInUser *oauth.User RepoInfo repoinfo.RepoInfo Active string Issues []db.Issue + LabelDefs map[string]*db.LabelDefinition Page pagination.Page FilteringByOpen bool } diff --git a/appview/pages/templates/labels/fragments/label.html b/appview/pages/templates/labels/fragments/label.html new file mode 100644 --- /dev/null +++ b/appview/pages/templates/labels/fragments/label.html @@ -0,0 +1,8 @@ +{{ define "labels/fragments/label" }} + {{ $d := .def }} + {{ $v := .val }} + + {{ template "repo/fragments/colorBall" (dict "color" $d.GetColor) }} + {{ $d.Name }}{{ if not $d.ValueType.IsNull }}/{{ $v }}{{ end }} + +{{ end }} diff --git a/appview/pages/templates/labels/fragments/labelDef.html b/appview/pages/templates/labels/fragments/labelDef.html new file mode 100644 --- /dev/null +++ b/appview/pages/templates/labels/fragments/labelDef.html @@ -0,0 +1,6 @@ +{{ define "labels/fragments/labelDef" }} + + {{ template "repo/fragments/colorBall" (dict "color" .GetColor) }} + {{ .Name }} + +{{ end }} diff --git a/appview/pages/templates/repo/issues/issues.html b/appview/pages/templates/repo/issues/issues.html --- a/appview/pages/templates/repo/issues/issues.html +++ b/appview/pages/templates/repo/issues/issues.html @@ -49,7 +49,7 @@ {{ .Title | description }} #{{ .IssueId }} -

+

{{ $bgColor := "bg-gray-800 dark:bg-gray-700" }} {{ $icon := "ban" }} {{ $state := "closed" }} @@ -75,11 +75,21 @@ {{ $s := "s" }} {{ if eq (len .Comments) 1 }} - {{ $s = "" }} + {{ $s = "" }} {{ end }} {{ len .Comments }} comment{{$s}} -

+ + {{ if .Labels.Inner }} + + {{ range $k, $valset := .Labels.Inner }} + {{ $d := index $.LabelDefs $k }} + {{ range $v, $s := $valset }} + {{ template "labels/fragments/label" (dict "def" $d "val" $v) }} + {{ end }} + {{ end }} + {{ end }} +
{{ end }} -- tangled.sh