From 09959d956b82a52bef3e162f13e2ec79d2752ab8 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Thu, 28 Aug 2025 09:46:42 +0100 Subject: [PATCH] appview/pages: add metadata to profile tabs Change-Id: suxtuwvnwmwrnrymvqlpnwtqzoppswxq Signed-off-by: oppiliappan --- appview/pages/pages.go | 50 +++++++++++++------ appview/pages/repoinfo/repoinfo.go | 9 +--- .../pages/templates/layouts/profilebase.html | 8 +-- appview/pages/templates/layouts/repobase.html | 4 +- .../templates/user/fragments/profileCard.html | 4 +- 5 files changed, 45 insertions(+), 30 deletions(-) diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 5af89dde..bec12c1c 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -410,21 +410,29 @@ func (p *Pages) ForkRepo(w io.Writer, params ForkRepoParams) error { } type ProfileCard struct { - UserDid string - UserHandle string - FollowStatus db.FollowStatus - FollowersCount int - FollowingCount int - Punchcard *db.Punchcard - Profile *db.Profile - Active string + UserDid string + UserHandle string + FollowStatus db.FollowStatus + Punchcard *db.Punchcard + Profile *db.Profile + Stats ProfileStats + Active string +} + +type ProfileStats struct { + RepoCount int64 + StarredCount int64 + StringCount int64 + FollowersCount int64 + FollowingCount int64 } -func (p *ProfileCard) GetTabs() [][]string { - tabs := [][]string{ - {"overview", "overview", "square-chart-gantt"}, - {"repos", "repos", "book-marked"}, - {"starred", "starred", "star"}, +func (p *ProfileCard) GetTabs() [][]any { + tabs := [][]any{ + {"overview", "overview", "square-chart-gantt", nil}, + {"repos", "repos", "book-marked", p.Stats.RepoCount}, + {"starred", "starred", "star", p.Stats.StarredCount}, + {"strings", "strings", "line-squiggle", p.Stats.StringCount}, } return tabs @@ -468,11 +476,23 @@ func (p *Pages) ProfileStarred(w io.Writer, params ProfileStarredParams) error { return p.executeProfile("user/starred", w, params) } +type ProfileStringsParams struct { + LoggedInUser *oauth.User + Strings []db.String + Card *ProfileCard + Active string +} + +func (p *Pages) ProfileStrings(w io.Writer, params ProfileStringsParams) error { + params.Active = "strings" + return p.executeProfile("user/strings", w, params) +} + type FollowCard struct { UserDid string FollowStatus db.FollowStatus - FollowersCount int - FollowingCount int + FollowersCount int64 + FollowingCount int64 Profile *db.Profile } diff --git a/appview/pages/repoinfo/repoinfo.go b/appview/pages/repoinfo/repoinfo.go index 40cb5ad8..c676ddbf 100644 --- a/appview/pages/repoinfo/repoinfo.go +++ b/appview/pages/repoinfo/repoinfo.go @@ -78,13 +78,8 @@ type RepoInfo struct { func (r RepoInfo) TabMetadata() map[string]any { meta := make(map[string]any) - if r.Stats.PullCount.Open > 0 { - meta["pulls"] = r.Stats.PullCount.Open - } - - if r.Stats.IssueCount.Open > 0 { - meta["issues"] = r.Stats.IssueCount.Open - } + meta["pulls"] = r.Stats.PullCount.Open + meta["issues"] = r.Stats.IssueCount.Open // more stuff? diff --git a/appview/pages/templates/layouts/profilebase.html b/appview/pages/templates/layouts/profilebase.html index 9db49f2b..d658db47 100644 --- a/appview/pages/templates/layouts/profilebase.html +++ b/appview/pages/templates/layouts/profilebase.html @@ -9,7 +9,7 @@ {{ define "content" }} {{ template "profileTabs" . }} -
+