rin
Публичный Open-source lightweight git hosting.
activity.html · 107 строк · 4.6 KB
Raw
1 {{define "content"}}
2 <div class="container">
3 {{template "repo_header" .}}
4
5 <!-- Pulse Statistics -->
6 {{if .Stats}}
7 <div class="grid-4 mb-4">
8 <div class="card p-3">
9 <div class="flex items-center justify-between text-muted text-xs font-semibold uppercase mb-1">
10 <span>{{t .Lang "activity.commits"}}</span>
11 {{icon "git-commit" "size-4"}}
12 </div>
13 <div class="text-xl font-bold font-mono">{{.Stats.CommitCount}}</div>
14 <div class="text-xs text-muted mt-1">{{t .Lang "activity.on_default_branch"}}</div>
15 </div>
16
17 <div class="card p-3">
18 <div class="flex items-center justify-between text-muted text-xs font-semibold uppercase mb-1">
19 <span>{{t .Lang "repo.tab.pulls"}}</span>
20 {{icon "git-pull-request" "size-4"}}
21 </div>
22 <div class="flex items-baseline gap-2 font-mono">
23 <span class="text-xl font-bold" style="color:hsl(var(--primary));">{{.Stats.OpenPRs}}</span>
24 <span class="text-xs text-muted">/ {{.Stats.MergedPRs}} {{t .Lang "pulls.status.merged"}}</span>
25 </div>
26 <div class="text-xs text-muted mt-1">{{t .Lang "activity.pull_requests"}}</div>
27 </div>
28
29 <div class="card p-3">
30 <div class="flex items-center justify-between text-muted text-xs font-semibold uppercase mb-1">
31 <span>{{t .Lang "repo.tab.issues"}}</span>
32 {{icon "issue" "size-4"}}
33 </div>
34 <div class="flex items-baseline gap-2 font-mono">
35 <span class="text-xl font-bold" style="color:hsl(var(--primary));">{{.Stats.OpenIssues}}</span>
36 <span class="text-xs text-muted">/ {{.Stats.ClosedIssues}} {{t .Lang "issue.status.closed"}}</span>
37 </div>
38 <div class="text-xs text-muted mt-1">{{t .Lang "activity.issues"}}</div>
39 </div>
40
41 <div class="card p-3">
42 <div class="flex items-center justify-between text-muted text-xs font-semibold uppercase mb-1">
43 <span>{{t .Lang "repo.tab.releases"}}</span>
44 {{icon "tag" "size-4"}}
45 </div>
46 <div class="text-xl font-bold font-mono">{{.Stats.ReleaseCount}}</div>
47 <div class="text-xs text-muted mt-1">{{t .Lang "activity.published_releases"}}</div>
48 </div>
49 </div>
50 {{end}}
51
52 <!-- Activity Timeline -->
53 <div class="card">
54 <div class="card-header flex items-center justify-between">
55 <span class="font-semibold text-sm flex items-center gap-2">
56 {{icon "activity" "size-4"}}
57 <span>{{t .Lang "activity.recent_feed"}}</span>
58 </span>
59 </div>
60
61 {{if .Items}}
62 <div class="dense-list">
63 {{range .Items}}
64 <div class="dense-row" style="min-height:3rem;padding:0.6rem 0.85rem;">
65 <div class="flex items-center gap-3 min-w-0">
66 <span class="text-muted flex-shrink-0" style="display:inline-flex;align-items:center;">
67 {{if eq .Type "commit"}}
68 <span style="color:hsl(var(--primary));">{{icon "git-commit" "size-4"}}</span>
69 {{else if eq .Type "pull"}}
70 <span style="color:hsl(var(--accent));">{{icon "git-pull-request" "size-4"}}</span>
71 {{else if eq .Type "issue"}}
72 <span style="color:hsl(var(--primary));">{{icon "issue" "size-4"}}</span>
73 {{else if eq .Type "release"}}
74 <span style="color:hsl(var(--warning-fg, 38 92% 50%));">{{icon "tag" "size-4"}}</span>
75 {{else}}
76 {{icon "activity" "size-4"}}
77 {{end}}
78 </span>
79
80 <div class="flex flex-col min-w-0">
81 <div class="flex items-center gap-2 flex-wrap min-w-0">
82 <a href="{{.Link}}" class="font-semibold text-sm truncate">{{.Title}}</a>
83 {{if .Subtitle}}
84 <span class="font-mono text-xs text-muted">{{.Subtitle}}</span>
85 {{end}}
86 {{if .Badge}}
87 <span class="badge badge-outline text-xs" style="padding:0.05rem 0.35rem;">{{activityBadge $.Lang .Type .Badge}}</span>
88 {{end}}
89 </div>
90 <div class="text-xs text-muted flex items-center gap-1.5 mt-0.5">
91 {{if .AuthorUsername}}
92 <span>@{{.AuthorUsername}}</span>
93 <span>·</span>
94 {{end}}
95 <span>{{timeAgo .CreatedAt $.Lang}}</span>
96 </div>
97 </div>
98 </div>
99 </div>
100 {{end}}
101 </div>
102 {{else}}
103 <div class="card-body text-xs text-muted">{{t .Lang "activity.empty"}}</div>
104 {{end}}
105 </div>
106 </div>
107 {{end}}