Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

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.

Condense the Admin overview to one row of metric cards

9a2a270b91085170678db617a3fae6873df2fd61 · Keenan Nemetz · 4d ago · parent 0db980ee

Condense the Admin overview to one row of metric cards

The overview had two card grids, five metrics followed by four account
counts, and the storage and account cards repeated detail that belongs on
their tabs. It is one row now: storage used, free space, users,
repositories, and page views.

The Users card is the active account count with the roster mix as its note
(people, bots, admins, retired), so the separate account cards are gone.
LFS object totals stay on the Storage tab. The queue and runner counts
remain a line below the row.

Refs #198 (01M6MK0NNZ2XR1D5TQKNWYT4HN).

server/web/templates/status.html +9−34

@@ -12,48 +12,23 @@
12 12 {{if .Storage.DiskErr}}<span class="status-note bad">unavailable</span>{{else}}<span class="status-note">available of {{bytes .Storage.Disk.Total}}</span>{{end}}
13 13 </div>
14 14 <div class="card">
15 <span class="muted">LFS objects</span>
16 <strong>{{bytes .LFS.Total.Bytes}}</strong>
17 <span class="status-note">{{.LFS.Total.Objects}} object(s)</span>
15 <span class="muted">Users</span>
16 <strong>{{.Accounts}}</strong>
17 <span class="status-note">{{.AccountSummary.UsersNote}}</span>
18 </div>
19 <div class="card">
20 <span class="muted">Repositories</span>
21 <strong>{{.Repos}}</strong>
22 <span class="status-note">hosted here</span>
18 23 </div>
19 24 <div class="card">
20 25 <span class="muted">Page views</span>
21 26 <strong>{{if .Views.Disabled}}—{{else}}{{.Views.Month.Views}}{{end}}</strong>
22 27 <span class="status-note">{{if .Views.Disabled}}not recorded{{else}}last 30 days{{end}}</span>
23 28 </div>
24 <div class="card">
25 <span class="muted">Unique users</span>
26 <strong>{{if .Views.Disabled}}—{{else}}{{.Views.Month.Users}}{{end}}</strong>
27 <span class="status-note">{{if .Views.Disabled}}not recorded{{else}}signed in, last 30 days{{end}}</span>
28 </div>
29 29 </div>
30 30
31 <p class="muted status-inventory">{{.Accounts}} account(s) · {{.Repos}} repository(s) · {{.Queued}} queued · {{.Running}} running · {{.Runners}} runner(s)</p>
32
33 <h2>Accounts</h2>
34 <div class="status-grid">
35 <div class="card">
36 <span class="muted">Active people</span>
37 <strong>{{.AccountSummary.People}}</strong>
38 <span class="status-note">can sign in or push</span>
39 </div>
40 <div class="card">
41 <span class="muted">Bots</span>
42 <strong>{{.AccountSummary.Bots}}</strong>
43 <span class="status-note">automation identities</span>
44 </div>
45 <div class="card">
46 <span class="muted">Instance admins</span>
47 <strong>{{.AccountSummary.Admins}}</strong>
48 <span class="status-note">can act everywhere</span>
49 </div>
50 <div class="card">
51 <span class="muted">Retired</span>
52 <strong>{{.AccountSummary.Retired}}</strong>
53 <span class="status-note">names kept, access removed</span>
54 </div>
55 </div>
56 <p class="muted"><a href="/admin?tab=accounts">Manage accounts</a></p>
31 <p class="muted status-inventory">{{.Queued}} queued · {{.Running}} running · {{.Runners}} runner(s)</p>
57 32
58 33 <h2>Recent admin activity</h2>
59 34 {{if .RecentAudit.Err}}<div class="flash bad">The audit log could not be read: {{.RecentAudit.Err}}</div>{{end}}