internal/web/templates/owner.html

20b06b791bf4bdd23b633bbfde819d5d8564751a
gitbay/internal/web/templates/owner.html history · blame · raw

98 lines · 5123 bytes

 1{{define "title"}}{{.Owner}} · {{.Site}}{{end}}
 2{{define "content"}}
 3<section class="profilehead">
 4<h1>{{.Owner}} <span class="chip chip-neutral">{{.Kind}}</span></h1>
 5{{if .Profile.Description}}<p class="desc lede">{{.Profile.Description}}</p>{{end}}
 6{{if .Profile.Website}}<p class="meta"><a href="{{.Profile.Website}}" rel="nofollow me">{{.Profile.Website}}</a></p>{{end}}
 7{{if .Orgs}}<p class="meta">member of {{range .Orgs}}<a class="memberchip" href="/{{.Username}}">{{.Username}}</a> {{end}}</p>{{end}}
 8{{if .Members}}<p class="meta">members {{range .Members}}<a class="memberchip" href="/{{.Username}}">{{.Username}} <span class="role">{{.Role}}</span></a> {{end}}</p>{{end}}
 9</section>
10<section class="activity">
11<h2>activity <span class="count">{{.ActivityTotal}} in the last year</span></h2>
12<div class="actgraph-scroll">
13<div class="actgraph">
14{{range .Activity}}<div class="actweek">{{range .}}<span class="actday{{if .Pad}} pad{{else}} l{{.Level}}{{end}}"{{if not .Pad}} title="{{.Count}} on {{.Date}}"{{end}}></span>{{end}}</div>{{end}}
15</div>
16</div>
17</section>
18<h2>repositories <span class="count">{{len .Repos}}</span></h2>
19<ul class="repolist">
20{{range .Repos}}{{template "reporow" .}}
21{{else}}<li class="empty">no visible repositories</li>{{end}}
22</ul>
23
24{{if .CanAdmin}}{{$org := .Owner}}
25<h2>people <span class="count">{{len .Members}}</span></h2>
26{{if .Notice}}<p class="error" role="alert">{{.Notice}}</p>{{end}}
27<div class="tablewrap"><table class="keys">
28<tr class="cols"><th scope="col">member</th><th scope="col">role</th><th scope="col"></th></tr>
29{{range .Members}}<tr>
30  <td><a href="/{{.Username}}">{{.Username}}</a></td>
31  <td>{{.Role}}</td>
32  <td class="act"><form method="post" action="/{{$org}}"><input type="hidden" name="field" value="member-remove"><input type="hidden" name="user" value="{{.Username}}"><button type="submit" class="linklike">Remove</button></form></td>
33</tr>
34{{end}}</table></div>
35<details class="editbox">
36  <summary>Add or change a member</summary>
37  <form method="post" action="/{{$org}}" class="setform">
38    <input type="hidden" name="field" value="member-add">
39    <label for="member">Username</label>
40    <input type="text" id="member" name="user" required>
41    <label class="none" for="memberrole">Role</label>
42    <select id="memberrole" name="role">
43      <option value="member">member</option>
44      <option value="admin">admin</option>
45    </select>
46    <button type="submit">Apply</button>
47  </form>
48</details>
49
50<h2>teams <span class="count">{{len .Teams}}</span></h2>
51<p class="meta">Teams scope repository access inside the organization: members
52of a team get its role on every repository it is granted.</p>
53{{range .Teams}}<details class="difffold" open>
54  <summary><span class="fpath">{{.Name}}</span>
55    <span class="fstat">{{len .Members}} member{{if ne (len .Members) 1}}s{{end}} · {{len .Grants}} repo{{if ne (len .Grants) 1}}s{{end}}</span>
56  </summary>
57  <div class="teambody">
58    <p class="meta">members: {{range .Members}}<a class="memberchip" href="/{{.}}">{{.}}</a> {{else}}<span class="none">none yet</span>{{end}}</p>
59    <p class="meta">repositories: {{range .Grants}}<span class="memberchip"><a href="/{{.RepoPath}}">{{.RepoPath}}</a> <span class="role">{{.Role}}</span></span> {{else}}<span class="none">none yet</span>{{end}}</p>
60    <form method="post" action="/{{$org}}" class="setform">
61      <input type="hidden" name="team" value="{{.Name}}">
62      <label class="none" for="tm-{{.Name}}">Members</label>
63      <input type="text" id="tm-{{.Name}}" name="user" placeholder="usernames, space-separated">
64      <button type="submit" name="field" value="team-add">Add</button>
65      <button type="submit" name="field" value="team-remove">Remove</button>
66    </form>
67    <form method="post" action="/{{$org}}" class="setform">
68      <input type="hidden" name="team" value="{{.Name}}">
69      <label class="none" for="tr-{{.Name}}">Repository</label>
70      <input type="text" id="tr-{{.Name}}" name="repo" placeholder="owner/name">
71      <label class="none" for="trr-{{.Name}}">Role</label>
72      <select id="trr-{{.Name}}" name="role">
73        <option value="read">read</option>
74        <option value="write">write</option>
75        <option value="admin">admin</option>
76      </select>
77      <button type="submit" name="field" value="team-grant">Grant</button>
78      <button type="submit" name="field" value="team-revoke">Revoke</button>
79    </form>
80    <form method="post" action="/{{$org}}" class="setform">
81      <input type="hidden" name="field" value="team-delete">
82      <input type="hidden" name="team" value="{{.Name}}">
83      <button type="submit" class="linklike">Delete this team</button>
84    </form>
85  </div>
86</details>
87{{else}}<p class="none">No teams yet.</p>{{end}}
88<details class="editbox">
89  <summary>Create a team</summary>
90  <form method="post" action="/{{$org}}" class="setform">
91    <input type="hidden" name="field" value="team-create">
92    <label for="newteam">Name</label>
93    <input type="text" id="newteam" name="team" required>
94    <button type="submit">Create</button>
95  </form>
96</details>
97{{end}}
98{{end}}