repos / git-pr

a self-hosted git collaboration server
git clone https://github.com/picosh/git-pr.git

commit
b5c2188
parent
9a43498
author
Eric Bower
date
2025-02-04 14:20:57 -0500 EST
design: show number of prs next to status filters
2 files changed,  +31, -6
M web.go
M tmpl/index.html
+4, -4
 1@@ -218,13 +218,13 @@ git push origin main
 2 <main>
 3   <div>
 4     filter
 5-    <a href="/">open</a>
 6+    <a href="/">open</a> <code>{{.NumOpen}}</code>
 7     &middot;
 8-    <a href="/?status=reviewed">reviewed</a>
 9+    <a href="/?status=reviewed">reviewed</a> <code>{{.NumReviewed}}</code>
10     &middot;
11-    <a href="/?status=accepted">accepted</a>
12+    <a href="/?status=accepted">accepted</a> <code>{{.NumAccepted}}</code>
13     &middot;
14-    <a href="/?status=closed">closed</a>
15+    <a href="/?status=closed">closed</a> <code>{{.NumClosed}}</code>
16   </div>
17   {{template "pr-table" .Prs}}
18 </main>
M web.go
+27, -2
 1@@ -110,7 +110,11 @@ type LinkData struct {
 2 }
 3 
 4 type PrTableData struct {
 5-	Prs []*PrListData
 6+	Prs         []*PrListData
 7+	NumOpen     int
 8+	NumReviewed int
 9+	NumAccepted int
10+	NumClosed   int
11 	MetaData
12 }
13 
14@@ -286,10 +290,31 @@ func indexHandler(w http.ResponseWriter, r *http.Request) {
15 		return
16 	}
17 
18+	numOpen := 0
19+	numReviewed := 0
20+	numAccepted := 0
21+	numClosed := 0
22+	for _, pr := range prs {
23+		switch pr.Status {
24+		case "open":
25+			numOpen += 1
26+		case "reviewed":
27+			numReviewed += 1
28+		case "accepted":
29+			numAccepted += 1
30+		case "closed":
31+			numClosed += 1
32+		}
33+	}
34+
35 	w.Header().Set("content-type", "text/html")
36 	tmpl := getTemplate("index.html")
37 	err = tmpl.ExecuteTemplate(w, "index.html", PrTableData{
38-		Prs: prdata,
39+		NumOpen:     numOpen,
40+		NumReviewed: numReviewed,
41+		NumAccepted: numAccepted,
42+		NumClosed:   numClosed,
43+		Prs:         prdata,
44 		MetaData: MetaData{
45 			URL: web.Backend.Cfg.Url,
46 		},