From defa5091d6209fd19ac32fe38bccf65f6ca8b664 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Fri, 5 Sep 2025 12:09:36 +0100 Subject: [PATCH] appview: show repo language in profile page Change-Id: txpxlrvqmzurlnpkwootsmzlotkwwyxq Signed-off-by: oppiliappan --- appview/db/profile.go | 4 +- appview/db/repos.go | 67 ---------------------- appview/pages/templates/user/overview.html | 28 ++++++--- appview/state/profile.go | 2 +- 4 files changed, 23 insertions(+), 78 deletions(-) diff --git a/appview/db/profile.go b/appview/db/profile.go index 7de3bfa5..e0c96ac9 100644 --- a/appview/db/profile.go +++ b/appview/db/profile.go @@ -151,7 +151,7 @@ func MakeProfileTimeline(e Execer, forDid string) (*ProfileTimeline, error) { *items = append(*items, &issue) } - repos, err := GetAllReposByDid(e, forDid) + repos, err := GetRepos(e, 0, FilterEq("did", forDid)) if err != nil { return nil, fmt.Errorf("error getting all repos by did: %w", err) } @@ -586,7 +586,7 @@ func ValidateProfile(e Execer, profile *Profile) error { } // ensure all pinned repos are either own repos or collaborating repos - repos, err := GetAllReposByDid(e, profile.Did) + repos, err := GetRepos(e, 0, FilterEq("did", profile.Did)) if err != nil { log.Printf("getting repos for %s: %s", profile.Did, err) } diff --git a/appview/db/repos.go b/appview/db/repos.go index d240469c..17c5a159 100644 --- a/appview/db/repos.go +++ b/appview/db/repos.go @@ -309,73 +309,6 @@ func CountRepos(e Execer, filters ...filter) (int64, error) { return count, nil } -func GetAllReposByDid(e Execer, did string) ([]Repo, error) { - var repos []Repo - - rows, err := e.Query( - `select - r.did, - r.name, - r.knot, - r.rkey, - r.description, - r.created, - count(s.id) as star_count, - r.source - from - repos r - left join - stars s on r.at_uri = s.repo_at - where - r.did = ? - group by - r.at_uri - order by r.created desc`, - did) - if err != nil { - return nil, err - } - defer rows.Close() - - for rows.Next() { - var repo Repo - var repoStats RepoStats - var createdAt string - var nullableDescription sql.NullString - var nullableSource sql.NullString - - err := rows.Scan(&repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &nullableDescription, &createdAt, &repoStats.StarCount, &nullableSource) - if err != nil { - return nil, err - } - - if nullableDescription.Valid { - repo.Description = nullableDescription.String - } - - if nullableSource.Valid { - repo.Source = nullableSource.String - } - - createdAtTime, err := time.Parse(time.RFC3339, createdAt) - if err != nil { - repo.Created = time.Now() - } else { - repo.Created = createdAtTime - } - - repo.RepoStats = &repoStats - - repos = append(repos, repo) - } - - if err := rows.Err(); err != nil { - return nil, err - } - - return repos, nil -} - func GetRepo(e Execer, did, name string) (*Repo, error) { var repo Repo var description, spindle sql.NullString diff --git a/appview/pages/templates/user/overview.html b/appview/pages/templates/user/overview.html index 0ba7b3b4..b55ab11a 100644 --- a/appview/pages/templates/user/overview.html +++ b/appview/pages/templates/user/overview.html @@ -56,17 +56,29 @@
{{ range . }} -
- - {{ if .Source }} +
+ + + {{ if .Source }} {{ i "git-fork" "w-4 h-4" }} - {{ else }} + {{ else }} {{ i "book-plus" "w-4 h-4" }} - {{ end }} + {{ end }} + + + {{- .Repo.Name -}} + - - {{- .Repo.Name -}} - + + {{ with .Repo.RepoStats }} + {{ with .Language }} +
+
+ {{ . }} +
+ {{end }} + {{end }}
{{ end }}
diff --git a/appview/state/profile.go b/appview/state/profile.go index 71173c2c..9bb8ff0e 100644 --- a/appview/state/profile.go +++ b/appview/state/profile.go @@ -701,7 +701,7 @@ func (s *State) EditPinsFragment(w http.ResponseWriter, r *http.Request) { log.Printf("getting profile data for %s: %s", user.Did, err) } - repos, err := db.GetAllReposByDid(s.db, user.Did) + repos, err := db.GetRepos(s.db, 0, db.FilterEq("did", user.Did)) if err != nil { log.Printf("getting repos for %s: %s", user.Did, err) } -- 2.43.0