~gitpocket/gitpocket

1

style(ui): american spelling and softer repo descriptions

commit
9a0689bbfd10584eedda3671e0cfd19aeb024766 browse tree
parent
c0e915d5007aece28000cd7683df78cb1f26b900
author
obscurejames <354576047+obscurejames@users.noreply.github.com>
signature
Verified ~james signed with a key registered by ~james
date
2026-11-12 21:51 UTC

11 files changed, +39 −39

admin.go modified

@@ -333,12 +333,12 @@ func (s *Server) newOrg(w http.ResponseWriter, r *http.Request) {
333333 return
334334 }
335335 if r.Method == "GET" {
336- s.render(w, r, "neworg", page{Title: "New organisation", User: u})
336+ s.render(w, r, "neworg", page{Title: "New organization", User: u})
337337 return
338338 }
339339 name := strings.TrimSpace(r.FormValue("name"))
340340 if s.limiter.blocked("org:" + u.Name) {
341- s.render(w, r, "neworg", page{Title: "New organisation", User: u, Error: "Too many organisations created recently, try again later", Data: map[string]any{"Name": name}})
341+ s.render(w, r, "neworg", page{Title: "New organization", User: u, Error: "Too many organizations created recently, try again later", Data: map[string]any{"Name": name}})
342342 return
343343 }
344344 org, err := s.store.CreateOrg(name)
@@ -347,7 +347,7 @@ func (s *Server) newOrg(w http.ResponseWriter, r *http.Request) {
347347 }
348348 if err != nil {
349349 w.WriteHeader(400)
350- s.render(w, r, "neworg", page{Title: "New organisation", User: u, Error: err.Error(), Data: map[string]any{"Name": name}})
350+ s.render(w, r, "neworg", page{Title: "New organization", User: u, Error: err.Error(), Data: map[string]any{"Name": name}})
351351 return
352352 }
353353 s.limiter.fail("org:" + u.Name)

main.go modified

@@ -31,7 +31,7 @@ func main() {
3131 ban name | unban name block or restore an account
3232 delete name remove an account and its repositories
3333 feature owner/repo... | -owner/repo set or clear the featured projects, in order
34- org name [+user|-user]... create an organisation and add or remove members
34+ org name [+user|-user]... create an organization and add or remove members
3535 mail address send a test message through the configured mailer
3636 backup dir | file.db snapshot the database and bundle every changed repository into dir`)
3737 }
@@ -146,7 +146,7 @@ func main() {
146146 log.Fatal(err)
147147 }
148148 } else if !store.IsOrg(org.ID) {
149- log.Fatalf("~%s is a user, not an organisation", args[1])
149+ log.Fatalf("~%s is a user, not an organization", args[1])
150150 }
151151 for _, spec := range args[2:] {
152152 name := strings.TrimPrefix(strings.TrimLeft(spec, "+-"), "~")

static/style.css modified

@@ -2,7 +2,7 @@
22 @font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url(/static/fonts/sans-400-italic.woff2) format('woff2')}
33 @font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/sans-600-normal.woff2) format('woff2')}
44 @font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/sans-700-normal.woff2) format('woff2')}
5-:root{--accent:#44467d;--accentdark:#35366b;--accentsoft:#f3f4fd;--focus:#c4c8e8;--heat0:#ebedf0;--heat1:#c4c8e8;--heat2:#959acb;--heat3:#6a6ea8;--heat4:#44467d;--fg:#212529;--muted:#6c757d;--line:#dee2e6;--soft:#f8f9fa;--bar:#ddd;--add:#1a7f37;--del:#c0392b;--addbg:#e6ffec;--delbg:#ffebe9;--code:#f8f9fa;--bg:#fff;--raised:#e9ecef;--raisedhover:#dde1e5;--edge:#ced4da;--hl:#fff8c5;--warnbg:#fff3cd;--warnedge:#ffeeba;--warnfg:#5c4b00;--merged:#6f42c1;--dotedge:rgba(0,0,0,.12);--link:var(--accent);--tip:#16181b;--tipfg:#fff;color-scheme:light}
5+:root{--accent:#44467d;--accentdark:#35366b;--accentsoft:#f3f4fd;--focus:#c4c8e8;--heat0:#ebedf0;--heat1:#c4c8e8;--heat2:#959acb;--heat3:#6a6ea8;--heat4:#44467d;--fg:#212529;--muted:#6c757d;--line:#dee2e6;--soft:#f8f9fa;--bar:#ddd;--add:#1a7f37;--del:#c0392b;--addbg:#e6ffec;--delbg:#ffebe9;--code:#f8f9fa;--bg:#fff;--raised:#e9ecef;--raisedhover:#dde1e5;--edge:#ced4da;--hl:#fff8c5;--warnbg:#fff3cd;--warnedge:#ffeeba;--warnfg:#5c4b00;--merged:#6f42c1;--dotedge:rgba(0,0,0,.12);--link:var(--accent);--fg2:#555b61;--tip:#16181b;--tipfg:#fff;color-scheme:light}
66 *{box-sizing:border-box}
77 html{font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","DejaVu Sans",Arial,sans-serif;background:var(--bg);color:var(--fg)}
88 body{margin:0}
@@ -89,10 +89,10 @@ main{padding-bottom:3rem}
8989 nav.tabs.small{background:var(--raised);align-self:flex-end;margin-bottom:.3rem}
9090 nav.tabs.small a{padding:.1rem .8rem}
9191 nav.tabs.small a.active{background:var(--bar)}
92-.profile .avatar{display:block;width:260px;height:260px;margin-bottom:.9rem;border-radius:50%}
92+.profile .avatar{display:block;width:260px;height:260px;margin-bottom:1.1rem;border-radius:50%}
9393 .profile p{margin:.2rem 0}
94-.profile .name{font-weight:400;font-size:1.3rem;line-height:1.25;margin:0;color:var(--fg)}
95-.profile .btn.block{display:block;text-align:center;margin-top:.45rem}
94+.profile .name{font-weight:400;font-size:1.45rem;line-height:1.2;margin:0;color:var(--fg)}
95+.profile .btn.block{display:block;text-align:center;margin:0}
9696 .info{background:var(--accentsoft);color:var(--fg);padding:.5rem .7rem;border:1px solid var(--focus);margin:0}
9797 .avatar{object-fit:cover;border:1px solid var(--line);background:var(--soft)}
9898 .bio{margin:.5rem 0 .6rem}
@@ -275,7 +275,7 @@ table.blame td.n{border-right:1px solid var(--bar)}
275275 .events .event.repo{padding:.38rem .68rem .42rem;margin-bottom:.5rem}
276276 .event.repo h4{font-size:.97rem}
277277 .event.repo h4{border-bottom:0;padding:0;margin:0}
278-.event.repo>p{margin:.08rem 0 0;font-size:.89rem}
278+.event.repo>p{margin:.08rem 0 0;font-size:.89rem;color:var(--fg2)}
279279 .event.repo p.tags{margin-top:.15rem}
280280 .event p.repometa{display:flex;gap:.8rem;color:var(--muted);font-size:.76rem;margin:.25rem 0 0}
281281 .repometa span{display:inline-flex;align-items:center}
@@ -361,15 +361,15 @@ pre.rangediff,pre.body{white-space:pre-wrap;overflow-wrap:anywhere}
361361 .h0{background:var(--heat0)}.h1{background:var(--heat1)}.h2{background:var(--heat2)}.h3{background:var(--heat3)}.h4{background:var(--heat4)}
362362 .activity .legend{display:flex;align-items:center;gap:3px;justify-content:flex-end;margin:.3rem 0 0}
363363 .activity .legend i{display:inline-block;width:10px;height:10px;border-radius:2px}
364-.profile .ident{margin-bottom:.7rem}
365-.profile .handle{color:var(--muted);font-size:1.05rem;margin:0}
364+.profile .ident{margin-bottom:1rem}
365+.profile .handle{color:var(--muted);font-size:1.05rem;margin:.1rem 0 0}
366366 .profile .bio{margin:0 0 .8rem}
367367 .profile .bio p{margin:0 0 .4rem}
368-.facts{list-style:none;margin:0 0 1rem;padding:0;font-size:.92rem;color:var(--muted)}
369-.facts li{display:flex;align-items:center;gap:.45rem;margin:.25rem 0;min-width:0}
368+.facts{list-style:none;margin:0 0 1.1rem;padding:0;font-size:.92rem;color:var(--muted)}
369+.facts li{display:flex;align-items:center;gap:.5rem;margin:.35rem 0;min-width:0}
370370 .facts a{color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
371371 .facts svg{flex:none;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
372-.ownactions{border-top:1px solid var(--line);padding-top:.6rem}
372+.ownactions{border-top:1px solid var(--line);padding-top:.9rem}
373373 .profile .bio.readme,.profile .bio.readme p{font-family:inherit;font-size:.98rem;line-height:1.5}
374374 .navsearch{flex:0 1 20rem;margin-left:.5rem}
375375 .navsearch input{width:100%;padding:.2rem .55rem;font-size:.9rem}
@@ -386,13 +386,13 @@ pre.rangediff,pre.body{white-space:pre-wrap;overflow-wrap:anywhere}
386386 .hit h4{margin:0 0 .25rem;font-size:1.05rem;font-weight:400}
387387 .hit h4 a{color:var(--link)}
388388 .hit h4 a.owner{color:var(--muted)}
389-.hit p{margin:.15rem 0}
389+.hit p{margin:.15rem 0;color:var(--fg2)}
390390 .hit .tags a{color:var(--muted);text-decoration:underline;margin-right:.6rem;font-size:.85rem}
391391 .hit .meta{display:flex;gap:1.1rem;flex-wrap:wrap;color:var(--muted);font-size:.85rem;margin-top:.35rem}
392392 .hit.user{display:grid;grid-template-columns:3rem 1fr;gap:.9rem;align-items:start}
393393 .hit.org .hitavatar img{border-radius:6px}
394394 .hitavatar img{display:flex;width:3rem;height:3rem;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
395-.hit .bio{color:var(--fg);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
395+.hit .bio{color:var(--fg2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
396396 .langbar{display:flex;height:.5rem;border-radius:4px;overflow:hidden;margin:.2rem 0 .5rem;background:var(--line)}
397397 .langbar span{display:block;height:100%}
398398 .langlist{list-style:none;margin:0 0 1.2rem;padding:0;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.2rem 1rem}
@@ -417,11 +417,11 @@ pre.rangediff,pre.body{white-space:pre-wrap;overflow-wrap:anywhere}
417417 .dashhead h3{border:0;margin:0;padding:0}
418418 @media(max-width:800px){.dash{grid-template-columns:1fr}}
419419
420-.orglist{margin:0 0 1rem}
421-.orglist h4{font-size:.85rem;color:var(--muted);margin:0 0 .4rem;font-weight:600}
420+.orglist{margin:0;padding:.9rem 0 1rem;border-top:1px solid var(--line)}
421+.orglist h4{font-size:.85rem;color:var(--muted);margin:0 0 .55rem;font-weight:400}
422422 .orgicons{display:flex;flex-wrap:wrap;gap:.4rem}
423423 .orglist a{display:flex}
424-.orglist img{display:flex;width:2rem;height:2rem;border-radius:4px;object-fit:cover;font-size:.8rem}
424+.orglist img{display:flex;width:2.2rem;height:2.2rem;border-radius:4px;object-fit:cover;font-size:.8rem}
425425 .memberlist{list-style:none;margin:0 0 .8rem;padding:0;max-width:32rem}
426426 .memberlist li{display:flex;align-items:center;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--line)}
427427 .memberlist form{margin:0}
@@ -473,9 +473,9 @@ nav.site .me form{margin:0}
473473 .branchpick>div a:hover{background:var(--soft);text-decoration:none}
474474 .branchpick>div a.current{font-weight:600;color:var(--link)}
475475 label.radio input{width:auto;margin:0}
476-:root[data-theme=dark]{--accent:#5b5fa8;--accentdark:#4a4d91;--accentsoft:#2c2e48;--focus:#4a4d91;--link:#a3a7ee;--heat0:#2f3034;--heat1:#2f3262;--heat2:#454991;--heat3:#666bc4;--heat4:#9ca0f0;--fg:#f4f4f4;--muted:#a8a8a8;--line:#3e3f45;--soft:#28292d;--bar:#303136;--add:#42be65;--del:#fa4d56;--addbg:#0e2a17;--delbg:#3a1518;--code:#28292d;--bg:#212225;--raised:#2e2f34;--raisedhover:#393a40;--edge:#57585f;--hl:#3d3412;--warnbg:#2d2510;--warnedge:#5c4b10;--warnfg:#f1c21b;--merged:#a56eff;--dotedge:rgba(255,255,255,.15);--tip:#f4f4f4;--tipfg:#212225;color-scheme:dark}
476+:root[data-theme=dark]{--accent:#5b5fa8;--accentdark:#4a4d91;--accentsoft:#2c2e48;--focus:#4a4d91;--link:#a3a7ee;--heat0:#2f3034;--heat1:#2f3262;--heat2:#454991;--heat3:#666bc4;--heat4:#9ca0f0;--fg:#f4f4f4;--muted:#a8a8a8;--line:#3e3f45;--soft:#28292d;--bar:#303136;--add:#42be65;--del:#fa4d56;--addbg:#0e2a17;--delbg:#3a1518;--code:#28292d;--bg:#212225;--raised:#2e2f34;--raisedhover:#393a40;--edge:#57585f;--hl:#3d3412;--warnbg:#2d2510;--warnedge:#5c4b10;--warnfg:#f1c21b;--merged:#a56eff;--dotedge:rgba(255,255,255,.15);--tip:#f4f4f4;--tipfg:#212225;--fg2:#c2c4c9;color-scheme:dark}
477477 :root[data-theme=dark] nav.site .brand img{filter:brightness(2.2) saturate(.9)}
478-@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:#5b5fa8;--accentdark:#4a4d91;--accentsoft:#2c2e48;--focus:#4a4d91;--link:#a3a7ee;--heat0:#2f3034;--heat1:#2f3262;--heat2:#454991;--heat3:#666bc4;--heat4:#9ca0f0;--fg:#f4f4f4;--muted:#a8a8a8;--line:#3e3f45;--soft:#28292d;--bar:#303136;--add:#42be65;--del:#fa4d56;--addbg:#0e2a17;--delbg:#3a1518;--code:#28292d;--bg:#212225;--raised:#2e2f34;--raisedhover:#393a40;--edge:#57585f;--hl:#3d3412;--warnbg:#2d2510;--warnedge:#5c4b10;--warnfg:#f1c21b;--merged:#a56eff;--dotedge:rgba(255,255,255,.15);--tip:#f4f4f4;--tipfg:#212225;color-scheme:dark}:root:not([data-theme=light]) nav.site .brand img{filter:brightness(2.2) saturate(.9)}}
478+@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:#5b5fa8;--accentdark:#4a4d91;--accentsoft:#2c2e48;--focus:#4a4d91;--link:#a3a7ee;--heat0:#2f3034;--heat1:#2f3262;--heat2:#454991;--heat3:#666bc4;--heat4:#9ca0f0;--fg:#f4f4f4;--muted:#a8a8a8;--line:#3e3f45;--soft:#28292d;--bar:#303136;--add:#42be65;--del:#fa4d56;--addbg:#0e2a17;--delbg:#3a1518;--code:#28292d;--bg:#212225;--raised:#2e2f34;--raisedhover:#393a40;--edge:#57585f;--hl:#3d3412;--warnbg:#2d2510;--warnedge:#5c4b10;--warnfg:#f1c21b;--merged:#a56eff;--dotedge:rgba(255,255,255,.15);--tip:#f4f4f4;--tipfg:#212225;--fg2:#c2c4c9;color-scheme:dark}:root:not([data-theme=light]) nav.site .brand img{filter:brightness(2.2) saturate(.9)}}
479479 .mdbar{display:flex;gap:.2rem;margin:.2rem 0 .3rem;font-size:.85rem}
480480 .mdbar button{font:inherit;background:none;border:1px solid transparent;color:var(--muted);padding:.1rem .55rem;cursor:pointer}
481481 .mdbar button:hover{color:var(--fg)}

templates/admin.html modified

@@ -7,14 +7,14 @@
77 {{with $d.Stats}}<h3 class="rule">Site</h3>
88 <table class="keys">
99 <tr><td>Users</td><td>{{.Users}}{{if .Banned}} <span class="muted">({{.Banned}} banned)</span>{{end}}</td></tr>
10-<tr><td>Organisations</td><td>{{.Orgs}}</td></tr>
10+<tr><td>Organizations</td><td>{{.Orgs}}</td></tr>
1111 <tr><td>Repositories</td><td>{{.Repos}} <span class="muted">({{.Private}} private, {{.Unlisted}} unlisted)</span></td></tr>
1212 <tr><td>Disk usage</td><td>{{size $d.Used}}{{if $d.Quota}} <span class="muted">(quota {{$d.QuotaText}} per owner)</span>{{end}}</td></tr>
1313 <tr><td>Registration</td><td>{{if eq $d.Registration "open"}}open to everyone{{else if eq $d.Registration "invite"}}invite only{{else}}closed{{end}} <a class="muted" href="/admin?s=signup">change</a></td></tr>
1414 <tr><td>Mail</td><td>{{if $d.Mail}}configured{{else}}not configured, resets go through <code>gitpocket passwd</code>{{end}}</td></tr>
1515 </table>{{end}}
1616 <h3 class="rule">Newest accounts</h3>
17-<table class="keys">{{range $d.Recent}}<tr><td><a href="/~{{.Name}}">~{{.Name}}</a></td><td class="muted">{{if .Org}}organisation{{else if .Admin}}admin{{end}}{{if .Banned}} banned{{end}}</td><td class="when">{{ago .Created}}</td></tr>{{end}}</table>
17+<table class="keys">{{range $d.Recent}}<tr><td><a href="/~{{.Name}}">~{{.Name}}</a></td><td class="muted">{{if .Org}}organization{{else if .Admin}}admin{{end}}{{if .Banned}} banned{{end}}</td><td class="when">{{ago .Created}}</td></tr>{{end}}</table>
1818 {{end}}
1919
2020 {{if eq $d.Section "people"}}
@@ -22,7 +22,7 @@
2222 <form method="get" action="/admin" class="inline"><input type="hidden" name="s" value="people"><input name="q" value="{{$d.Query}}" placeholder="Filter by name" aria-label="Filter by name"><button class="btn">Filter ▸</button>{{if $d.Query}}<a href="/admin?s=people">clear</a>{{end}}</form>
2323 <table class="keys">{{range $d.Accounts}}<tr>
2424 <td><a href="/~{{.Name}}">~{{.Name}}</a></td>
25-<td class="muted">{{if .Org}}organisation{{else if .Admin}}admin{{end}}{{if .Banned}} banned{{end}}</td>
25+<td class="muted">{{if .Org}}organization{{else if .Admin}}admin{{end}}{{if .Banned}} banned{{end}}</td>
2626 <td class="muted">{{.Repos}} repos</td>
2727 <td class="when">joined {{.Created.Format "2 Jan 2006"}}</td>
2828 <td>{{if ne .Name $.User.Name}}<form method="post" action="/admin" class="inline"><input type="hidden" name="s" value="people"><input type="hidden" name="q" value="{{$d.Query}}"><input type="hidden" name="name" value="{{.Name}}">{{if not .Org}}{{if .Admin}}<button class="btn small" name="action" value="unadmin">Revoke admin</button>{{else}}<button class="btn small" name="action" value="admin">Make admin</button>{{end}}{{end}}{{if .Banned}}<button class="btn small" name="action" value="unban">Unban</button>{{else}}<button class="btn small danger" name="action" value="ban">Ban</button>{{end}}</form>{{end}}</td>

templates/index.html modified

@@ -1,7 +1,7 @@
11 {{define "content"}}
22 {{if .User}}
33 <div class="dash">
4-<section><div class="dashhead"><h3>Your repositories</h3><span><a class="btn" href="/orgs/new">New organisation</a> <a class="btn primary" href="/create">New repository</a></span></div>
4+<section><div class="dashhead"><h3>Your repositories</h3><span><a class="btn" href="/orgs/new">New organization</a> <a class="btn primary" href="/create">New repository</a></span></div>
55 {{if .Data.Repos}}{{template "repolist" .Data.Repos}}{{else}}<p class="muted">You have no repositories yet.</p>{{end}}
66 {{if .Data.Shared}}<h3>Shared with you</h3>{{template "repolist" .Data.Shared}}{{end}}</section>
77 {{else}}

templates/neworg.html modified

@@ -1,8 +1,8 @@
11 {{define "content"}}
2-<h3 class="rule">Create an organisation</h3>
3-<p class="muted">An organisation owns repositories on behalf of a group. You become its first member, and every member can push to its repositories, create new ones under it and edit its page.</p>
2+<h3 class="rule">Create an organization</h3>
3+<p class="muted">An organization owns repositories on behalf of a group. You become its first member, and every member can push to its repositories, create new ones under it and edit its page.</p>
44 <form method="post" action="/orgs/new" class="stack wide">
55 <label>Name <input name="name" required autofocus pattern="[a-z0-9][a-z0-9_.-]{0,38}" value="{{with .Data}}{{.Name}}{{end}}"><small>Lowercase letters, digits, dot, dash or underscore. It shares the namespace with users.</small></label>
6-<div class="actions left"><button class="btn primary">Create organisation ▸</button></div>
6+<div class="actions left"><button class="btn primary">Create organization ▸</button></div>
77 </form>
88 {{end}}

templates/org.html modified

@@ -13,12 +13,12 @@
1313 <li title="{{date $o.Created}}"><svg viewBox="0 0 16 16" aria-hidden="true"><rect x="2" y="3" width="12" height="11" rx="1.5"/><path d="M2 6.5h12M5.5 1.5v3M10.5 1.5v3"/></svg>Since {{$o.Created.Format "January 2006"}}</li>
1414 </ul>
1515 </div>
16-{{if .Data.Member}}<div class="orgactions"><a class="btn" href="/~{{$o.Name}}/settings">Edit organisation</a></div>{{end}}
16+{{if .Data.Member}}<div class="orgactions"><a class="btn" href="/~{{$o.Name}}/settings">Edit organization</a></div>{{end}}
1717 </header>
1818 <div class="columns orgbody">
1919 <div class="main">
2020 <nav class="tabs small orgtabs"><a class="active" href="/~{{$o.Name}}">about</a><a href="/~{{$o.Name}}/repos">repos{{if .Data.Total}} <span class="count">{{.Data.Total}}</span>{{end}}</a><a href="/~{{$o.Name}}/feed">feed</a></nav>
21-{{with .Data.Activity}}<section class="activity"><div class="heathead"><p class="muted small">{{.Total}} commit{{if ne .Total 1}}s{{end}} across the organisation {{if .Year}}in {{.Year}}{{else}}in the past 12 months{{end}}</p><nav class="years">{{range .Years}}<a href="{{if eq . $.Data.Activity.Year}}?{{else}}?year={{.}}{{end}}"{{if eq . $.Data.Activity.Year}} class="active"{{end}}>{{.}}</a>{{end}}</nav></div>{{.Grid}}<p class="legend muted small">less <i class="h0"></i><i class="h1"></i><i class="h2"></i><i class="h3"></i><i class="h4"></i> more</p></section>{{end}}
21+{{with .Data.Activity}}<section class="activity"><div class="heathead"><p class="muted small">{{.Total}} commit{{if ne .Total 1}}s{{end}} across the organization {{if .Year}}in {{.Year}}{{else}}in the past 12 months{{end}}</p><nav class="years">{{range .Years}}<a href="{{if eq . $.Data.Activity.Year}}?{{else}}?year={{.}}{{end}}"{{if eq . $.Data.Activity.Year}} class="active"{{end}}>{{.}}</a>{{end}}</nav></div>{{.Grid}}<p class="legend muted small">less <i class="h0"></i><i class="h1"></i><i class="h2"></i><i class="h3"></i><i class="h4"></i> more</p></section>{{end}}
2222 {{if .Data.Repos}}<div class="events">{{range .Data.Repos}}{{template "repoitem" .}}{{end}}</div>{{end}}
2323 </div>
2424 <aside class="people">

templates/orgsettings.html modified

@@ -19,7 +19,7 @@
1919 <input type="hidden" name="org" value="{{$o.Name}}">
2020 <div class="pair">
2121 <label>Handle <span class="muted">(you can't edit this)</span><input value="{{$o.Name}}" disabled></label>
22-<label>Name <input name="display" value="{{$p.Display}}" maxlength="100" placeholder="Shown on the organisation page"></label>
22+<label>Name <input name="display" value="{{$p.Display}}" maxlength="100" placeholder="Shown on the organization page"></label>
2323 </div>
2424 <div class="pair">
2525 <label>Location <input name="location" value="{{$p.Location}}" maxlength="100"></label>

templates/reposettings.html modified

@@ -33,7 +33,7 @@
3333 <h3 id="labels">Labels</h3>
3434 {{if .Data.Labels}}<table class="keys">{{range .Data.Labels}}<tr><td><span class="label" style="background:{{.Colour}}">{{.Name}}</span></td><td><code>{{.Colour}}</code></td><td><form method="post" action="/{{$p.Repo.Path}}/labels"><input type="hidden" name="remove" value="{{.ID}}"><button class="btn danger">Remove</button></form></td></tr>{{end}}</table>{{end}}
3535 <form method="post" action="/{{$p.Repo.Path}}/labels" class="stack">
36-<div class="pair"><label>Name <input name="name" required maxlength="40" placeholder="bug"></label><label>Colour <input name="colour" type="color" value="#0640e0"></label></div>
36+<div class="pair"><label>Name <input name="name" required maxlength="40" placeholder="bug"></label><label>Color <input name="colour" type="color" value="#0640e0"></label></div>
3737 <div class="actions left"><button class="btn primary">Add label ▸</button></div>
3838 </form>
3939 <h3 id="protection">Branch protection</h3>

templates/user.html modified

@@ -16,7 +16,7 @@
1616 {{range $p.Links}}<li><svg viewBox="0 0 16 16" aria-hidden="true"><path d="M6.8 9.2a3 3 0 0 0 4.2 0l2.2-2.2a3 3 0 0 0-4.2-4.2l-.9.9"/><path d="M9.2 6.8a3 3 0 0 0-4.2 0L2.8 9a3 3 0 0 0 4.2 4.2l.9-.9"/></svg><a href="{{.}}" rel="nofollow me">{{bare .}}</a></li>{{end}}
1717 <li title="{{date .Data.Owner.Created}}"><svg viewBox="0 0 16 16" aria-hidden="true"><rect x="2" y="3" width="12" height="11" rx="1.5"/><path d="M2 6.5h12M5.5 1.5v3M10.5 1.5v3"/></svg>Joined {{.Data.Owner.Created.Format "January 2006"}}</li>
1818 </ul>
19-{{with .Data.Orgs}}<div class="orglist"><h4>Organisations</h4><div class="orgicons">{{range .}}<a href="/~{{.Name}}" title="{{with .Profile.Display}}{{.}}{{else}}~{{.Name}}{{end}}" aria-label="~{{.Name}}"><img src="/~{{.Name}}/avatar?v={{.Profile.Avatar}}" alt=""></a>{{end}}</div></div>{{end}}
19+{{with .Data.Orgs}}<div class="orglist"><h4>Organizations</h4><div class="orgicons">{{range .}}<a href="/~{{.Name}}" title="{{with .Profile.Display}}{{.}}{{else}}~{{.Name}}{{end}}" aria-label="~{{.Name}}"><img src="/~{{.Name}}/avatar?v={{.Profile.Avatar}}" alt=""></a>{{end}}</div></div>{{end}}
2020 {{if $own}}<div class="ownactions"><a class="btn block" href="/settings">Edit profile</a></div>{{end}}
2121 </aside>
2222 <div class="main">

web.go modified

@@ -441,7 +441,7 @@ func (s *Server) create(w http.ResponseWriter, r *http.Request) {
441441 if o := r.FormValue("owner"); o != "" && o != u.Name {
442442 org, err := s.store.UserByName(o)
443443 if err != nil || !s.store.IsOrg(org.ID) || !s.store.IsMember(org.ID, u.ID) {
444- s.fail(w, r, 403, "You are not a member of that organisation")
444+ s.fail(w, r, 403, "You are not a member of that organization")
445445 return
446446 }
447447 owner = org
@@ -708,7 +708,7 @@ func (s *Server) subject(w http.ResponseWriter, r *http.Request) (*User, string)
708708 }
709709 org, err := s.store.UserByName(name)
710710 if err != nil || !s.store.IsOrg(org.ID) || !s.store.IsMember(org.ID, u.ID) {
711- s.fail(w, r, 403, "You are not a member of that organisation")
711+ s.fail(w, r, 403, "You are not a member of that organization")
712712 return nil, ""
713713 }
714714 return &org, "/~" + org.Name + "/settings"
@@ -1595,7 +1595,7 @@ func (s *Server) orgSettings(w http.ResponseWriter, r *http.Request, org User, a
15951595 return
15961596 }
15971597 if !s.store.IsMember(org.ID, u.ID) {
1598- s.fail(w, r, 403, "You are not a member of this organisation")
1598+ s.fail(w, r, 403, "You are not a member of this organization")
15991599 return
16001600 }
16011601 back := "/~" + org.Name + "/settings"
@@ -1607,7 +1607,7 @@ func (s *Server) orgSettings(w http.ResponseWriter, r *http.Request, org User, a
16071607 back += "?error=No+such+user"
16081608 case r.FormValue("remove") != "":
16091609 if len(s.store.Members(org.ID)) == 1 {
1610- back += "?error=An+organisation+needs+at+least+one+member"
1610+ back += "?error=An+organization+needs+at+least+one+member"
16111611 } else {
16121612 s.store.SetMember(org.ID, target.ID, false)
16131613 }
@@ -1741,7 +1741,7 @@ func (s *Server) profileReadme(owner User) intro {
17411741 return in
17421742 }
17431743
1744-var nameWords = []string{"heron", "lantern", "harbour", "kestrel", "thicket", "anvil", "orchard", "beacon", "lattice", "meadow", "quarry", "sparrow", "tundra", "compass", "furnace", "willow", "ledger", "marrow", "pebble", "spindle", "cinder", "bramble", "atlas", "ferry", "loom", "estuary", "magpie", "bellows", "cairn", "fathom", "gantry", "hearth", "juniper", "keel", "lichen", "mortar", "nettle", "osprey", "plinth", "quill", "rookery", "sextant", "tinder", "umber", "vellum", "wicket", "yarrow", "zephyr", "sorrel", "flint"}
1744+var nameWords = []string{"heron", "lantern", "harbor", "kestrel", "thicket", "anvil", "orchard", "beacon", "lattice", "meadow", "quarry", "sparrow", "tundra", "compass", "furnace", "willow", "ledger", "marrow", "pebble", "spindle", "cinder", "bramble", "atlas", "ferry", "loom", "estuary", "magpie", "bellows", "cairn", "fathom", "gantry", "hearth", "juniper", "keel", "lichen", "mortar", "nettle", "osprey", "plinth", "quill", "rookery", "sextant", "tinder", "umber", "vellum", "wicket", "yarrow", "zephyr", "sorrel", "flint"}
17451745
17461746 func suggestName() string {
17471747 return nameWords[rand.IntN(len(nameWords))]