- commit
- 24079e6
- parent
- 3770873
- author
- Eric Bower
- date
- 2025-03-13 12:32:39 -0400 EDT
chore: copy
4 files changed,
+62,
-23
+0,
-1
1@@ -32,6 +32,5 @@
2
3 <footer class="mt">
4 <div><a href="/rss">rss</a></div>
5- <div class="text-sm">OR with fingerprint, url encoded: <code>/rss?pubkey=SHA256%3Axxx</code></div>
6 </footer>
7 {{end}}
+3,
-3
1@@ -27,11 +27,11 @@ ssh {{.MetaData.URL}} pr ls {{.Username}}/{{.Name}}</pre>
2 <main class="group">
3 <div>
4 filter
5- <a href="/r/{{.Username}}/{{.Name}}">open</a>
6+ <a href="/">open</a> <code>{{.NumOpen}}</code>
7 ·
8- <a href="/r/{{.Username}}/{{.Name}}?status=accepted">accepted</a>
9+ <a href="/?status=accepted">accepted</a> <code>{{.NumAccepted}}</code>
10 ·
11- <a href="/r/{{.Username}}/{{.Name}}?status=closed">closed</a>
12+ <a href="/?status=closed">closed</a> <code>{{.NumClosed}}</code>
13 </div>
14 {{template "pr-table" .Prs}}
15 </main>
+3,
-3
1@@ -26,11 +26,11 @@
2 <main class="group">
3 <div>
4 filter
5- <a href="/r/{{.UserData.Name}}">open</a>
6+ <a href="/">open</a> <code>{{.NumOpen}}</code>
7 ·
8- <a href="/r/{{.UserData.Name}}?status=accepted">accepted</a>
9+ <a href="/?status=accepted">accepted</a> <code>{{.NumAccepted}}</code>
10 ·
11- <a href="/r/{{.UserData.Name}}?status=closed">closed</a>
12+ <a href="/?status=closed">closed</a> <code>{{.NumClosed}}</code>
13 </div>
14 {{template "pr-table" .Prs}}
15 </main>
M
web.go
+56,
-16
1@@ -122,8 +122,23 @@ type PrTableData struct {
2 }
3
4 type UserDetailData struct {
5- Prs []*PrListData
6- UserData UserData
7+ Prs []*PrListData
8+ UserData UserData
9+ NumOpen int
10+ NumAccepted int
11+ NumClosed int
12+ MetaData
13+}
14+
15+type RepoDetailData struct {
16+ Name string
17+ UserID int64
18+ Username string
19+ Branch string
20+ Prs []*PrListData
21+ NumOpen int
22+ NumAccepted int
23+ NumClosed int
24 MetaData
25 }
26
27@@ -409,10 +424,27 @@ func userDetailHandler(w http.ResponseWriter, r *http.Request) {
28 return
29 }
30
31+ numOpen := 0
32+ numAccepted := 0
33+ numClosed := 0
34+ for _, pr := range prs {
35+ switch pr.Status {
36+ case "open":
37+ numOpen += 1
38+ case "accepted":
39+ numAccepted += 1
40+ case "closed":
41+ numClosed += 1
42+ }
43+ }
44+
45 w.Header().Set("content-type", "text/html")
46 tmpl := getTemplate("user-detail.html")
47 err = tmpl.ExecuteTemplate(w, "user-detail.html", UserDetailData{
48- Prs: prdata,
49+ Prs: prdata,
50+ NumOpen: numOpen,
51+ NumAccepted: numAccepted,
52+ NumClosed: numClosed,
53 UserData: UserData{
54 UserID: user.ID,
55 Name: user.Name,
56@@ -429,15 +461,6 @@ func userDetailHandler(w http.ResponseWriter, r *http.Request) {
57 }
58 }
59
60-type RepoDetailData struct {
61- Name string
62- UserID int64
63- Username string
64- Branch string
65- Prs []*PrListData
66- MetaData
67-}
68-
69 func repoDetailHandler(w http.ResponseWriter, r *http.Request) {
70 userName := r.PathValue("user")
71 repoName := r.PathValue("repo")
72@@ -477,13 +500,30 @@ func repoDetailHandler(w http.ResponseWriter, r *http.Request) {
73 return
74 }
75
76+ numOpen := 0
77+ numAccepted := 0
78+ numClosed := 0
79+ for _, pr := range prs {
80+ switch pr.Status {
81+ case "open":
82+ numOpen += 1
83+ case "accepted":
84+ numAccepted += 1
85+ case "closed":
86+ numClosed += 1
87+ }
88+ }
89+
90 w.Header().Set("content-type", "text/html")
91 tmpl := getTemplate("repo-detail.html")
92 err = tmpl.ExecuteTemplate(w, "repo-detail.html", RepoDetailData{
93- Name: repo.Name,
94- UserID: user.ID,
95- Username: userName,
96- Prs: prdata,
97+ Name: repo.Name,
98+ UserID: user.ID,
99+ Username: userName,
100+ Prs: prdata,
101+ NumOpen: numOpen,
102+ NumAccepted: numAccepted,
103+ NumClosed: numClosed,
104 MetaData: MetaData{
105 URL: web.Backend.Cfg.Url,
106 },