Files
MeshTender/internal/web/templates/orgs.html
T
2026-06-20 13:55:30 -04:00

48 lines
1.9 KiB
HTML

{{define "title"}}Organizations · MeshTender{{end}}
{{define "header"}}
<div class="row g-2 align-items-center">
<div class="col"><h2 class="page-title">Organizations</h2></div>
{{if .LoggedIn}}
<div class="col-auto ms-auto d-print-none">
<a class="btn btn-primary" href="/orgs/new">{{template "icon-plus" "me-1"}}Create organization</a>
</div>
{{end}}
</div>
{{end}}
{{define "content"}}
{{if .Error}}<div class="alert alert-danger">{{.Error}}</div>{{end}}
<div class="card">
<div class="card-body">
<p class="text-secondary">
Organizations tend meshes together with MeshTender. Join one (via an invite link) to let its admins
help keep your repeaters in spec — you stay in control of exactly which commands they can run on each
repeater you contribute.
</p>
</div>
{{if .All}}
<div class="list-group list-group-flush">
{{range .All}}
<div class="list-group-item">
<div class="d-flex align-items-center gap-2">
<a class="fw-bold text-reset text-decoration-none" href="/orgs/{{.ID}}">{{.Name}}</a>
{{if $.LoggedIn}}{{$role := index $.MemberOf .ID}}{{if $role}}{{if eq $role "admin"}}<span class="badge bg-success-lt">admin</span>{{else}}<span class="badge bg-azure-lt">member</span>{{end}}{{end}}{{end}}
</div>
{{if .Description}}<p class="text-secondary mb-1 mt-1">{{.Description}}</p>{{end}}
<div class="text-secondary small">{{.MemberCount}} member{{if ne .MemberCount 1}}s{{end}} · {{.RepeaterCount}} repeater{{if ne .RepeaterCount 1}}s{{end}}</div>
</div>
{{end}}
</div>
{{else}}
<div class="card-body pt-0"><p class="text-secondary mb-0">No organizations yet.</p></div>
{{end}}
</div>
{{if not .LoggedIn}}
<div class="card mt-3">
<div class="card-body">
<p class="text-secondary mb-0">Want to start or join one? <a href="/login">Sign in or create an account →</a></p>
</div>
</div>
{{end}}
{{end}}