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.

Code

392 commit(s) on main

Merge change request 01M70WES5ZZDJ6RP226WB11BBZ: Let people rename and remove their own passkeys keenan · 26m ago 4b8c9e1d
history blame raw 3.6 KiB
1{{define "activity"}}
2{{template "header" .}}
3{{template "repohead" (nav .Page "activity")}}
4
5<div class="page-head">
6 <div class="page-head-main">
7 <h1>Activity</h1>
8 <p class="page-sub">Issues, changes, comments, and releases in one stream.</p>
9 </div>
10</div>
11
12{{template "activity_feed" .}}
13{{template "footer" .}}
14{{end}}
15
16{{define "activity_feed"}}
17<div id="activity-feed">
18 {{/* One row: kind chips and the actor/assignee pickers on the left, the clear
19 action on the right. The chips sit inside the form so a filter change
20 keeps the kind. */}}
21 <form class="filters" method="get" action="/{{.Name}}/activity" hx-get="/{{.Name}}/activity" hx-target="#activity-feed" hx-swap="outerHTML" hx-push-url="true">
22 <div class="chips" hx-boost="true" hx-target="#activity-feed" hx-swap="outerHTML" hx-push-url="true">
23 <a class="chip{{if eq .Kind ""}} active{{end}}" href="/{{.Name}}/activity?kind=all{{if .Actor}}&amp;actor={{urlquery .Actor}}{{end}}{{if .Assignee}}&amp;assignee={{urlquery .Assignee}}{{end}}">{{icon "activity"}}All</a>
24 <a class="chip{{if eq .Kind "issue"}} active{{end}}" href="/{{.Name}}/activity?kind=issues{{if .Actor}}&amp;actor={{urlquery .Actor}}{{end}}{{if .Assignee}}&amp;assignee={{urlquery .Assignee}}{{end}}">{{icon "circle-dot"}}Issues</a>
25 <a class="chip{{if eq .Kind "change"}} active{{end}}" href="/{{.Name}}/activity?kind=changes{{if .Actor}}&amp;actor={{urlquery .Actor}}{{end}}{{if .Assignee}}&amp;assignee={{urlquery .Assignee}}{{end}}">{{icon "git-pull-request"}}Changes</a>
26 <a class="chip{{if eq .Kind "release"}} active{{end}}" href="/{{.Name}}/activity?kind=releases{{if .Actor}}&amp;actor={{urlquery .Actor}}{{end}}{{if .Assignee}}&amp;assignee={{urlquery .Assignee}}{{end}}">{{icon "tag"}}Releases</a>
27 </div>
28 <input type="hidden" name="kind" value="{{.Kind}}">
29 <label class="filter-field">
30 <span class="filter-label">Actor</span>
31 <select name="actor" data-autosubmit>
32 <option value="">Anyone</option>
33 {{range .Actors}}<option value="{{.Name}}"{{if eq .Name $.Actor}} selected{{end}}>{{.Label}}</option>{{end}}
34 </select>
35 </label>
36 {{if .Assignees}}
37 <label class="filter-field">
38 <span class="filter-label">Assignee</span>
39 <select name="assignee" data-autosubmit>
40 <option value="">Anyone</option>
41 {{range .Assignees}}<option value="{{.}}"{{if eq . $.Assignee}} selected{{end}}>{{who .}}</option>{{end}}
42 </select>
43 </label>
44 {{end}}
45 {{if or .Actor .Assignee}}<div class="filters-search"><a class="button secondary" href="/{{.Name}}/activity{{if .Kind}}?kind={{.Kind}}{{end}}">{{icon "x"}}Clear</a></div>{{end}}
46 </form>
47
48 {{if .Events}}
49{{template "activity_events" .}}
50{{template "pager" .Pager}}
51 {{else}}
52 <div class="empty-state">
53 {{if or .Actor .Assignee}}
54 <p>No activity matches these filters.</p>
55 <p class="muted">Clear the filters or choose another type.</p>
56 {{else}}
57 <p>No activity yet.</p>
58 <p class="muted">Push a commit, open an issue, or queue a run.</p>
59 {{end}}
60 </div>
61 {{end}}
62</div>
63{{end}}
64
65{{define "activity_events"}}
66<div class="activity-list">
67 {{range .Events}}
68 <article class="activity-event">
69 <span class="activity-icon {{.Kind}}" aria-hidden="true">{{icon .Icon}}</span>
70 <div class="activity-body">
71 <a class="activity-title" href="{{.URL}}">{{.Title}}</a>
72 <div class="activity-meta">
73 {{if .Repo}}<a href="/{{.Repo}}">{{.Repo}}</a> · {{end}}{{if .Actor}}{{if .ActorName}}{{template "userlink" (user .ActorName)}}{{else}}{{.Actor}}{{end}} · {{end}}{{.Detail}} · {{since .Time.Unix}}
74 </div>
75 </div>
76 </article>
77 {{end}}
78</div>
79{{end}}
80