this repo has no description
1{{ define "title" }}{{ resolve .Card.UserDid }}{{ end }}
2
3{{ define "profileContent" }}
4 <div id="all-repos" class="md:col-span-4 order-2 md:order-2">
5 <div class="grid grid-cols-1 gap-4">
6 {{ block "ownRepos" . }}{{ end }}
7 {{ block "collaboratingRepos" . }}{{ end }}
8 </div>
9 </div>
10 <div class="md:col-span-4 order-3 md:order-3">
11 {{ block "profileTimeline" . }}{{ end }}
12 </div>
13{{ end }}
14
15{{ define "profileTimeline" }}
16 <p class="text-sm font-bold px-2 pb-4 dark:text-white">ACTIVITY</p>
17 <div class="flex flex-col gap-4 relative">
18 {{ if .ProfileTimeline.IsEmpty }}
19 <p class="dark:text-white">This user does not have any activity yet.</p>
20 {{ end }}
21
22 {{ with .ProfileTimeline }}
23 {{ range $idx, $byMonth := .ByMonth }}
24 {{ with $byMonth }}
25 {{ if not .IsEmpty }}
26 <div class="border border-gray-200 dark:border-gray-700 rounded-sm py-4 px-6">
27 <p class="text-sm font-mono mb-2 text-gray-500 dark:text-gray-400">
28 {{ if eq $idx 0 }}
29 this month
30 {{ else }}
31 {{$idx}} month{{if ne $idx 1}}s{{end}} ago
32 {{ end }}
33 </p>
34
35 <div class="flex flex-col gap-1">
36 {{ block "commits" .Commits }} {{ end }}
37 {{ block "repoEvents" .RepoEvents }} {{ end }}
38 {{ block "issueEvents" .IssueEvents }} {{ end }}
39 {{ block "pullEvents" .PullEvents }} {{ end }}
40 </div>
41 </div>
42 {{ end }}
43 {{ end }}
44 {{ end }}
45 {{ end }}
46 </div>
47{{ end }}
48
49{{ define "commits" }}
50 {{ if . }}
51 <div class="flex flex-wrap items-center gap-1">
52 {{ i "git-commit-horizontal" "size-5" }}
53 created {{ . }} commits
54 </div>
55 {{ end }}
56{{ end }}
57
58{{ define "repoEvents" }}
59 {{ if gt (len .) 0 }}
60 <details>
61 <summary class="list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400">
62 <div class="flex flex-wrap items-center gap-2">
63 {{ i "book-plus" "w-4 h-4" }}
64 created {{ len . }} {{if eq (len .) 1 }}repository{{else}}repositories{{end}}
65 </div>
66 </summary>
67 <div class="py-2 text-sm flex flex-col gap-3 mb-2">
68 {{ range . }}
69 <div class="flex flex-wrap items-center justify-between gap-2">
70 <span class="flex items-center gap-2">
71 <span class="text-gray-500 dark:text-gray-400">
72 {{ if .Source }}
73 {{ i "git-fork" "w-4 h-4" }}
74 {{ else }}
75 {{ i "book-plus" "w-4 h-4" }}
76 {{ end }}
77 </span>
78 <a href="/{{ resolve .Repo.Did }}/{{ .Repo.Name }}" class="no-underline hover:underline">
79 {{- .Repo.Name -}}
80 </a>
81 </span>
82
83 {{ with .Repo.RepoStats }}
84 {{ with .Language }}
85 <div class="flex gap-2 items-center text-xs font-mono text-gray-400 ">
86 {{ template "repo/fragments/colorBall" (dict "color" (langColor .)) }}
87 <span>{{ . }}</span>
88 </div>
89 {{end }}
90 {{end }}
91 </div>
92 {{ end }}
93 </div>
94 </details>
95 {{ end }}
96{{ end }}
97
98{{ define "issueEvents" }}
99 {{ $items := .Items }}
100 {{ $stats := .Stats }}
101
102 {{ if gt (len $items) 0 }}
103 <details>
104 <summary class="list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400">
105 <div class="flex flex-wrap items-center gap-2">
106 {{ i "circle-dot" "w-4 h-4" }}
107
108 <div>
109 created {{ len $items }} {{if eq (len $items) 1 }}issue{{else}}issues{{end}}
110 </div>
111
112 {{ if gt $stats.Open 0 }}
113 <span class="px-2 py-1/2 text-sm rounded text-white bg-green-600 dark:bg-green-700">
114 {{$stats.Open}} open
115 </span>
116 {{ end }}
117
118 {{ if gt $stats.Closed 0 }}
119 <span class="px-2 py-1/2 text-sm rounded text-white bg-gray-800 dark:bg-gray-700">
120 {{$stats.Closed}} closed
121 </span>
122 {{ end }}
123
124 </div>
125 </summary>
126 <div class="py-2 text-sm flex flex-col gap-3 mb-2">
127 {{ range $items }}
128 {{ $repoOwner := resolve .Repo.Did }}
129 {{ $repoName := .Repo.Name }}
130 {{ $repoUrl := printf "%s/%s" $repoOwner $repoName }}
131
132 <div class="flex gap-2 text-gray-600 dark:text-gray-300">
133 {{ if .Open }}
134 <span class="text-green-600 dark:text-green-500">
135 {{ i "circle-dot" "w-4 h-4" }}
136 </span>
137 {{ else }}
138 <span class="text-gray-500 dark:text-gray-400">
139 {{ i "ban" "w-4 h-4" }}
140 </span>
141 {{ end }}
142 <div class="flex-none min-w-8 text-right">
143 <span class="text-gray-500 dark:text-gray-400">#{{ .IssueId }}</span>
144 </div>
145 <div class="break-words max-w-full">
146 <a href="/{{$repoUrl}}/issues/{{ .IssueId }}" class="no-underline hover:underline">
147 {{ .Title -}}
148 </a>
149 on
150 <a href="/{{$repoUrl}}" class="no-underline hover:underline whitespace-nowrap">
151 {{$repoUrl}}
152 </a>
153 </div>
154 </div>
155 {{ end }}
156 </div>
157 </details>
158 {{ end }}
159{{ end }}
160
161{{ define "pullEvents" }}
162 {{ $items := .Items }}
163 {{ $stats := .Stats }}
164 {{ if gt (len $items) 0 }}
165 <details>
166 <summary class="list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400">
167 <div class="flex flex-wrap items-center gap-2">
168 {{ i "git-pull-request" "w-4 h-4" }}
169
170 <div>
171 created {{ len $items }} {{if eq (len $items) 1 }}pull request{{else}}pull requests{{end}}
172 </div>
173
174 {{ if gt $stats.Open 0 }}
175 <span class="px-2 py-1/2 text-sm rounded text-white bg-green-600 dark:bg-green-700">
176 {{$stats.Open}} open
177 </span>
178 {{ end }}
179
180 {{ if gt $stats.Merged 0 }}
181 <span class="px-2 py-1/2 text-sm rounded text-white bg-purple-600 dark:bg-purple-700">
182 {{$stats.Merged}} merged
183 </span>
184 {{ end }}
185
186
187 {{ if gt $stats.Closed 0 }}
188 <span class="px-2 py-1/2 text-sm rounded text-white bg-gray-800 dark:bg-gray-700">
189 {{$stats.Closed}} closed
190 </span>
191 {{ end }}
192
193 </div>
194 </summary>
195 <div class="py-2 text-sm flex flex-col gap-3 mb-2">
196 {{ range $items }}
197 {{ $repoOwner := resolve .Repo.Did }}
198 {{ $repoName := .Repo.Name }}
199 {{ $repoUrl := printf "%s/%s" $repoOwner $repoName }}
200
201 <div class="flex gap-2 text-gray-600 dark:text-gray-300">
202 {{ if .State.IsOpen }}
203 <span class="text-green-600 dark:text-green-500">
204 {{ i "git-pull-request" "w-4 h-4" }}
205 </span>
206 {{ else if .State.IsMerged }}
207 <span class="text-purple-600 dark:text-purple-500">
208 {{ i "git-merge" "w-4 h-4" }}
209 </span>
210 {{ else }}
211 <span class="text-gray-600 dark:text-gray-300">
212 {{ i "git-pull-request-closed" "w-4 h-4" }}
213 </span>
214 {{ end }}
215 <div class="flex-none min-w-8 text-right">
216 <span class="text-gray-500 dark:text-gray-400">#{{ .PullId }}</span>
217 </div>
218 <div class="break-words max-w-full">
219 <a href="/{{$repoUrl}}/pulls/{{ .PullId }}" class="no-underline hover:underline">
220 {{ .Title -}}
221 </a>
222 on
223 <a href="/{{$repoUrl}}" class="no-underline hover:underline whitespace-nowrap">
224 {{$repoUrl}}
225 </a>
226 </div>
227 </div>
228 {{ end }}
229 </div>
230 </details>
231 {{ end }}
232{{ end }}
233
234{{ define "ownRepos" }}
235 <div>
236 <div class="text-sm font-bold px-2 pb-4 dark:text-white flex items-center gap-2">
237 <a href="/{{ resolve $.Card.UserDid }}?tab=repos"
238 class="flex text-black dark:text-white items-center gap-2 no-underline hover:no-underline group">
239 <span>PINNED REPOS</span>
240 </a>
241 {{ if and .LoggedInUser (eq .LoggedInUser.Did .Card.UserDid) }}
242 <button
243 hx-get="profile/edit-pins"
244 hx-target="#all-repos"
245 class="py-0 font-normal text-sm flex gap-2 items-center group">
246 {{ i "pencil" "w-3 h-3" }}
247 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
248 </button>
249 {{ end }}
250 </div>
251 <div id="repos" class="grid grid-cols-1 gap-4 items-stretch">
252 {{ range .Repos }}
253 <div class="border border-gray-200 dark:border-gray-700 rounded-sm">
254 {{ template "user/fragments/repoCard" (list $ . false) }}
255 </div>
256 {{ else }}
257 <p class="dark:text-white">This user does not have any pinned repos.</p>
258 {{ end }}
259 </div>
260 </div>
261{{ end }}
262
263{{ define "collaboratingRepos" }}
264 {{ if gt (len .CollaboratingRepos) 0 }}
265 <div>
266 <p class="text-sm font-bold px-2 pb-4 dark:text-white">COLLABORATING ON</p>
267 <div id="collaborating" class="grid grid-cols-1 gap-4">
268 {{ range .CollaboratingRepos }}
269 <div class="border border-gray-200 dark:border-gray-700 rounded-sm">
270 {{ template "user/fragments/repoCard" (list $ . true) }}
271 </div>
272 {{ else }}
273 <p class="px-6 dark:text-white">This user is not collaborating.</p>
274 {{ end }}
275 </div>
276 </div>
277 {{ end }}
278{{ end }}
279