+2
-2
appview/db/profile.go
+2
-2
appview/db/profile.go
···
151
*items = append(*items, &issue)
152
}
153
154
-
repos, err := GetAllReposByDid(e, forDid)
155
if err != nil {
156
return nil, fmt.Errorf("error getting all repos by did: %w", err)
157
}
···
586
}
587
588
// ensure all pinned repos are either own repos or collaborating repos
589
-
repos, err := GetAllReposByDid(e, profile.Did)
590
if err != nil {
591
log.Printf("getting repos for %s: %s", profile.Did, err)
592
}
···
151
*items = append(*items, &issue)
152
}
153
154
+
repos, err := GetRepos(e, 0, FilterEq("did", forDid))
155
if err != nil {
156
return nil, fmt.Errorf("error getting all repos by did: %w", err)
157
}
···
586
}
587
588
// ensure all pinned repos are either own repos or collaborating repos
589
+
repos, err := GetRepos(e, 0, FilterEq("did", profile.Did))
590
if err != nil {
591
log.Printf("getting repos for %s: %s", profile.Did, err)
592
}
-67
appview/db/repos.go
-67
appview/db/repos.go
···
309
return count, nil
310
}
311
312
-
func GetAllReposByDid(e Execer, did string) ([]Repo, error) {
313
-
var repos []Repo
314
-
315
-
rows, err := e.Query(
316
-
`select
317
-
r.did,
318
-
r.name,
319
-
r.knot,
320
-
r.rkey,
321
-
r.description,
322
-
r.created,
323
-
count(s.id) as star_count,
324
-
r.source
325
-
from
326
-
repos r
327
-
left join
328
-
stars s on r.at_uri = s.repo_at
329
-
where
330
-
r.did = ?
331
-
group by
332
-
r.at_uri
333
-
order by r.created desc`,
334
-
did)
335
-
if err != nil {
336
-
return nil, err
337
-
}
338
-
defer rows.Close()
339
-
340
-
for rows.Next() {
341
-
var repo Repo
342
-
var repoStats RepoStats
343
-
var createdAt string
344
-
var nullableDescription sql.NullString
345
-
var nullableSource sql.NullString
346
-
347
-
err := rows.Scan(&repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &nullableDescription, &createdAt, &repoStats.StarCount, &nullableSource)
348
-
if err != nil {
349
-
return nil, err
350
-
}
351
-
352
-
if nullableDescription.Valid {
353
-
repo.Description = nullableDescription.String
354
-
}
355
-
356
-
if nullableSource.Valid {
357
-
repo.Source = nullableSource.String
358
-
}
359
-
360
-
createdAtTime, err := time.Parse(time.RFC3339, createdAt)
361
-
if err != nil {
362
-
repo.Created = time.Now()
363
-
} else {
364
-
repo.Created = createdAtTime
365
-
}
366
-
367
-
repo.RepoStats = &repoStats
368
-
369
-
repos = append(repos, repo)
370
-
}
371
-
372
-
if err := rows.Err(); err != nil {
373
-
return nil, err
374
-
}
375
-
376
-
return repos, nil
377
-
}
378
-
379
func GetRepo(e Execer, did, name string) (*Repo, error) {
380
var repo Repo
381
var description, spindle sql.NullString
+20
-8
appview/pages/templates/user/overview.html
+20
-8
appview/pages/templates/user/overview.html
···
56
</summary>
57
<div class="py-2 text-sm flex flex-col gap-3 mb-2">
58
{{ range . }}
59
-
<div class="flex flex-wrap items-center gap-2">
60
-
<span class="text-gray-500 dark:text-gray-400">
61
-
{{ if .Source }}
62
{{ i "git-fork" "w-4 h-4" }}
63
-
{{ else }}
64
{{ i "book-plus" "w-4 h-4" }}
65
-
{{ end }}
66
</span>
67
-
<a href="/{{ resolve .Repo.Did }}/{{ .Repo.Name }}" class="no-underline hover:underline">
68
-
{{- .Repo.Name -}}
69
-
</a>
70
</div>
71
{{ end }}
72
</div>
···
56
</summary>
57
<div class="py-2 text-sm flex flex-col gap-3 mb-2">
58
{{ range . }}
59
+
<div class="flex flex-wrap items-center justify-between gap-2">
60
+
<span class="flex items-center gap-2">
61
+
<span class="text-gray-500 dark:text-gray-400">
62
+
{{ if .Source }}
63
{{ i "git-fork" "w-4 h-4" }}
64
+
{{ else }}
65
{{ i "book-plus" "w-4 h-4" }}
66
+
{{ end }}
67
+
</span>
68
+
<a href="/{{ resolve .Repo.Did }}/{{ .Repo.Name }}" class="no-underline hover:underline">
69
+
{{- .Repo.Name -}}
70
+
</a>
71
</span>
72
+
73
+
{{ with .Repo.RepoStats }}
74
+
{{ with .Language }}
75
+
<div class="flex gap-2 items-center text-xs font-mono text-gray-400 ">
76
+
<div class="size-2 rounded-full"
77
+
style="background: radial-gradient(circle at 35% 35%, color-mix(in srgb, {{ langColor . }} 70%, white), {{ langColor . }} 30%, color-mix(in srgb, {{ langColor . }} 85%, black));"></div>
78
+
<span>{{ . }}</span>
79
+
</div>
80
+
{{end }}
81
+
{{end }}
82
</div>
83
{{ end }}
84
</div>
+1
-1
appview/state/profile.go
+1
-1
appview/state/profile.go