Been too long since i did anything, can't remember what the hell is in all this....

This commit is contained in:
2025-04-15 20:56:21 +01:00
parent 152c5cb18c
commit d7c15141b8
20 changed files with 248 additions and 78 deletions

View File

@@ -0,0 +1,57 @@
{{ define "content" }}
<div class="container py-5">
<h2>Manage Invite Links</h2>
{{ if .Tokens }}
<table class="table">
<thead>
<tr>
<th>Invite Link</th>
<th>Invited By</th>
<th>Status</th>
<th>Expires</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{{ range .Tokens }}
<tr>
<td>
<code>/syndicate/join?token={{ .Token }}</code>
</td>
<td>User #{{ .InvitedByUserID }}</td>
<td>
{{ if .AcceptedByUserID.Valid }}
<span class="text-success" title="Joined on {{ .AcceptedAt.Time.Format \"02 Jan 2006 15:04\" }}">
Accepted by User #{{ .AcceptedByUserID.Int64 }}
</span>
{{ else if .ExpiresAt.Before (now) }}
<span class="text-danger" title="Expired on {{ .ExpiresAt.Format \"02 Jan 2006 15:04\" }}">Expired</span>
{{ else }}
<span class="text-warning" title="Expires in {{ humanizeTime .ExpiresAt }}">Pending</span>
{{ end }}
</td>
<td>{{ .ExpiresAt.Format "02 Jan 2006 15:04" }}</td>
<td>
{{ if not .AcceptedByUserID.Valid }}
<form method="POST" action="/account/syndicates/invite/revoke?token={{ .Token }}&id={{ $.SyndicateID }}" class="d-inline">
{{ $.CSRFField }}
<button class="btn btn-sm btn-outline-danger" title="Invalidate this token">Revoke</button>
</form>
{{ end }}
<form method="POST" action="/account/syndicates/invite/token?id={{ $.SyndicateID }}" class="d-inline">
{{ $.CSRFField }}
<button class="btn btn-sm btn-outline-secondary" title="Create a new invite token">Regenerate</button>
</form>
</td>
</tr>
{{ end }}
</tbody>
</table>
{{ else }}
<div class="alert alert-info">No invite links found for this syndicate.</div>
{{ end }}
<a href="/syndicate/view?id={{ .SyndicateID }}" class="btn btn-secondary mt-3">← Back</a>
</div>
{{ end }}

View File

@@ -20,15 +20,19 @@
<strong>Manager Controls</strong><br>
You can add or remove members, and manage tickets.
</div>
<a href="/syndicate/invite?id={{ .Syndicate.ID }}" class="btn btn-outline-primary">Invite Members</a>
<form method="POST" action="/account/syndicates/invite/token?id={{ .Syndicate.ID }}" class="mt-3">
{{ .CSRFField }}
<button type="submit" class="btn btn-sm btn-outline-primary">Generate Invite Link</button>
</form>
{{ if .Flash }}
<div class="alert alert-info mt-2">{{ .Flash }}</div>
<div class="alert alert-info mt-2">{{ .Flash }}</div>
{{ end }}
{{ end }}
<a href="/syndicate" class="btn btn-secondary mt-3">← Back to Syndicates</a>
</div>
{{ end }}

View File

@@ -111,9 +111,9 @@
<!-- User Greeting -->
<span class="navbar-text">Hello, {{ .User.Username }}</span>
<a class="btn btn-outline-danger btn-xs" href="/logout">Logout</a>
<a class="btn btn-outline-danger btn-xs" href="/account/logout">Logout</a>
{{ else }}
<a class="btn btn-outline-primary btn-sm" href="/login">Login</a>
<a class="btn btn-outline-primary btn-sm" href="/account/login">Login</a>
{{ end }}
</div>
</nav>