vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Show people as portraits in the lists and the bar
0fbeca853d0174030973a4019bd54071cafa77dd · Keenan Nemetz · 7d ago · parent aceaabbf
Show people as portraits in the lists and the bar The account menu now carries the signed-in account's mark instead of a generic user icon, and the issue and change tables show the person rather than the name: the author is one portrait, and an issue's assignees are the portraits beside it. The issue's assignee labels moved out of the title cell, so a row is title plus people. A table cell is the one place where the portrait is not decoration — there is no printed name beside it — so those calls use avatarOnly: it keeps the profile link and the aria-label, and does not hide itself from a screen reader the way an avatar beside a name does. The contributor list already used the shared avatar template, so it picked up the new marks with the rest; checked in a browser rather than assumed.
server/web/templates/issues.html +5−3
| @@ -55,7 +55,7 @@ | |||
| 55 | 55 | <div class="panel"> | |
| 56 | 56 | <table class="issue-list"> | |
| 57 | 57 | <thead> | |
| 58 | <tr><th>Status</th><th>Issue</th><th>Author</th><th>Replies</th><th>Age</th></tr> | ||
| 58 | <tr><th>Status</th><th>Issue</th><th>Author</th><th>Assignees</th><th>Replies</th><th>Age</th></tr> | ||
| 59 | 59 | </thead> | |
| 60 | 60 | <tbody> | |
| 61 | 61 | {{range .Issues}} | |
| @@ -66,10 +66,12 @@ | |||
| 66 | 66 | <div class="row-meta"> | |
| 67 | 67 | <span class="sha">{{num .Number}}</span> | |
| 68 | 68 | {{range .Labels}}<span class="label">{{.}}</span>{{end}} | |
| 69 | {{range .Assignees}}<a class="label" href="/r/{{$.Name}}/issues?assignee={{urlquery .}}">@{{.}}</a>{{end}} | ||
| 70 | 69 | </div> | |
| 71 | 70 | </td> | |
| 72 | <td class="muted nowrap">{{template "userlink" (user .Author)}}</td> | ||
| 71 | <td class="nowrap">{{template "avatar" (avataronly (user .Author))}}</td> | ||
| 72 | <td class="nowrap"> | ||
| 73 | {{if .Assignees}}<span class="avatar-stack">{{range .Assignees}}{{template "avatar" (avataronly (user .))}}{{end}}</span>{{else}}<span class="muted">—</span>{{end}} | ||
| 74 | </td> | ||
| 73 | 75 | <td class="muted">{{.Comments}}</td> | |
| 74 | 76 | <td class="muted nowrap">{{since .Created.Unix}}</td> | |
| 75 | 77 | </tr> | |