forked from tangled.org/core
Monorepo for Tangled

appview/pages: show labels in all issues view

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li d208d22e 59a421c1

verified
Changed files
+44 -3
appview
issues
pages
templates
labels
repo
issues
+13
appview/issues/issues.go
··· 785 785 return 786 786 } 787 787 788 + labelDefs, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels)) 789 + if err != nil { 790 + log.Println("failed to fetch labels", err) 791 + rp.pages.Error503(w) 792 + return 793 + } 794 + 795 + defs := make(map[string]*db.LabelDefinition) 796 + for _, l := range labelDefs { 797 + defs[l.AtUri().String()] = &l 798 + } 799 + 788 800 rp.pages.RepoIssues(w, pages.RepoIssuesParams{ 789 801 LoggedInUser: rp.oauth.GetUser(r), 790 802 RepoInfo: f.RepoInfo(user), 791 803 Issues: issues, 804 + LabelDefs: defs, 792 805 FilteringByOpen: isOpen, 793 806 Page: page, 794 807 })
+3
appview/pages/funcmap.go
··· 29 29 "split": func(s string) []string { 30 30 return strings.Split(s, "\n") 31 31 }, 32 + "join": func(elems []string, sep string) string { 33 + return strings.Join(elems, sep) 34 + }, 32 35 "contains": func(s string, target string) bool { 33 36 return strings.Contains(s, target) 34 37 },
+1
appview/pages/pages.go
··· 887 887 RepoInfo repoinfo.RepoInfo 888 888 Active string 889 889 Issues []db.Issue 890 + LabelDefs map[string]*db.LabelDefinition 890 891 Page pagination.Page 891 892 FilteringByOpen bool 892 893 }
+8
appview/pages/templates/labels/fragments/label.html
··· 1 + {{ define "labels/fragments/label" }} 2 + {{ $d := .def }} 3 + {{ $v := .val }} 4 + <span class="flex items-center gap-2 font-normal normal-case rounded py-1 px-2 border border-gray-200 dark:border-gray-700 text-sm"> 5 + {{ template "repo/fragments/colorBall" (dict "color" $d.GetColor) }} 6 + {{ $d.Name }}{{ if not $d.ValueType.IsNull }}/{{ $v }}{{ end }} 7 + </span> 8 + {{ end }}
+6
appview/pages/templates/labels/fragments/labelDef.html
··· 1 + {{ define "labels/fragments/labelDef" }} 2 + <span class="flex items-center gap-2 font-normal normal-case"> 3 + {{ template "repo/fragments/colorBall" (dict "color" .GetColor) }} 4 + {{ .Name }} 5 + </span> 6 + {{ end }}
+13 -3
appview/pages/templates/repo/issues/issues.html
··· 49 49 <span class="text-gray-500">#{{ .IssueId }}</span> 50 50 </a> 51 51 </div> 52 - <p class="text-sm text-gray-500 dark:text-gray-400 flex flex-wrap items-center gap-1"> 52 + <div class="text-sm text-gray-500 dark:text-gray-400 flex flex-wrap items-center gap-1"> 53 53 {{ $bgColor := "bg-gray-800 dark:bg-gray-700" }} 54 54 {{ $icon := "ban" }} 55 55 {{ $state := "closed" }} ··· 75 75 <span class="before:content-['·']"> 76 76 {{ $s := "s" }} 77 77 {{ if eq (len .Comments) 1 }} 78 - {{ $s = "" }} 78 + {{ $s = "" }} 79 79 {{ end }} 80 80 <a href="/{{ $.RepoInfo.FullName }}/issues/{{ .IssueId }}" class="text-gray-500 dark:text-gray-400">{{ len .Comments }} comment{{$s}}</a> 81 81 </span> 82 - </p> 82 + 83 + {{ if .Labels.Inner }} 84 + <span class="before:content-['·']"></span> 85 + {{ range $k, $valset := .Labels.Inner }} 86 + {{ $d := index $.LabelDefs $k }} 87 + {{ range $v, $s := $valset }} 88 + {{ template "labels/fragments/label" (dict "def" $d "val" $v) }} 89 + {{ end }} 90 + {{ end }} 91 + {{ end }} 92 + </div> 83 93 </div> 84 94 {{ end }} 85 95 </div>