drasl/view/admin.tmpl
2025-07-26 12:31:22 -04:00

183 lines
5.9 KiB
Cheetah
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{ template "layout" . }}
{{ define "title" }}{{ call .T "Admin" }}{{ end }}
{{ define "content" }}
{{ template "header" . }}
<h4>{{ call .T "Pending Invites" }}</h4>
<div style="text-align: right">
<form
style="all: unset !important"
action="{{ .App.FrontEndURL }}/web/admin/new-invite"
method="post"
>
<input hidden name="returnUrl" value="{{ .URL }}" />
<input type="submit" value="+ {{ call .T "New Invite" }}" />
</form>
</div>
{{ if .Invites }}
<table>
<thead>
<tr>
<td style="width: 50%">{{ call .T "Link" }}</td>
<td>{{ call .T "Date Generated" }}</td>
<td></td>
</tr>
</thead>
<tbody>
{{ range $invite := .Invites }}
<tr>
<td>
<a href="{{ InviteURL $invite }}"
>{{ $.App.FrontEndURL }}/web/registration?invite={{ $invite.Code }}</a
>
</td>
<td>
{{ $invite.CreatedAt.Format (call $.T "Jan _2 15:04:05 MST 2006") }}
</td>
<td>
<form
action="{{ $.App.FrontEndURL }}/web/admin/delete-invite"
method="post"
>
<input hidden name="returnUrl" value="{{ $.URL }}" />
<input
type="text"
name="inviteCode"
value="{{ $invite.Code }}"
hidden
/>
<input type="submit" value="× {{ call $.T "Delete" }}" />
</form>
</td>
</tr>
{{ end }}
</tbody>
</table>
{{ else }}
{{ call .T "No invites to show." }}
{{ end }}
<h4>{{ call .T "All Users" }}</h4>
<div style="display: none">
{{ range $user := .Users }}
<form
id="delete-{{ $user.UUID }}"
action="{{ $.App.FrontEndURL }}/web/delete-user"
method="post"
onsubmit="return confirm('{{ call $.T "Are you sure you want to delete the account “%s”? This action is irreversible." $user.Username }}');"
>
<input
hidden
name="returnUrl"
value="{{ if eq $.User.UUID $user.UUID }}
{{ $.App.FrontEndURL }}
{{ else }}
{{ $.URL }}
{{ end }}"
/>
<input hidden type="text" name="uuid" value="{{ $user.UUID }}" />
</form>
{{ end }}
</div>
<form action="{{ .App.FrontEndURL }}/web/admin/update-users" method="post">
<table>
<thead>
<tr>
<td colspan="2">{{ call .T "User" }}</td>
<td>{{ call .T "Players" }}</td>
<td>{{ call .T "Max # players*" }}</td>
<td>{{ call .T "Admin" }}</td>
<td>{{ call .T "Locked" }}</td>
<td>{{ call .T "Delete Account" }}</td>
</tr>
</thead>
<tbody>
{{ range $user := .Users }}
<tr>
<td style="width: 30px">
<div
class="list-profile-picture"
{{ with $playerSkinURL := PrimaryPlayerSkinURL $user }}
{{ if $playerSkinURL }}
style="background-image: url({{ $playerSkinURL }});"
{{ end }}
{{ end }}
></div>
</td>
<td>
<a
href="{{ $.App.FrontEndURL }}/web/user/{{ $user.UUID }}"
>{{ $user.Username }}</a
>
</td>
<td>
{{ if eq (len $user.Players) 1 }}
{{ with $player := index $user.Players 0 }}
<a href="{{ $.App.FrontEndURL }}/web/player/{{ $player.UUID }}">{{ $player.Name }}</a>
{{ end }}
{{ else if gt (len $user.Players) 1 }}
{{ len $user.Players }}
{{ end }}
</td>
<td>
<input
name="max-player-count-{{ $user.UUID }}"
type="number"
{{ if $user.IsAdmin }}
title="{{ call $.T "Admins can always create unlimited players" }}"
disabled
{{ end }}
value="{{ if or $user.IsAdmin (eq $user.MaxPlayerCount $.App.Constants.MaxPlayerCountUnlimited) }}-1{{ else if eq $user.MaxPlayerCount $.App.Constants.MaxPlayerCountUseDefault}}{{ else }}{{ $user.MaxPlayerCount }}{{ end }}"
placeholder="{{ $.App.Config.DefaultMaxPlayerCount }}"
min="-1">
</input>
<td>
<input
name="admin-{{ $user.UUID }}"
title="{{ if IsDefaultAdmin $user }}{{ call $.T "To demote a default admin, edit the %s configuration." $.App.Config.ApplicationName }}{{ else }}{{ call $.T "Admin?" }}{{ end }}"
type="checkbox"
{{ if $user.IsAdmin }}
checked
{{ end }}
{{ if IsDefaultAdmin $user }}
disabled
{{ end }}
/>
</td>
<td>
<input
name="locked-{{ $user.UUID }}"
title="{{ call $.T "Locked?" }}"
type="checkbox"
{{ if $user.IsLocked }}
checked
{{ end }}
/>
</td>
<td>
<input
type="submit"
form="delete-{{ $user.UUID }}"
value="× {{ call $.T "Delete" }}"
/>
</td>
</tr>
{{ end }}
</tbody>
</table>
<p><small>{{ call .T "*Specify -1 to allow an unlimited number of players. Leave blank to use the default max number, which is %d." $.App.Config.DefaultMaxPlayerCount }}</small></p>
<p style="text-align: center">
<input hidden name="returnUrl" value="{{ $.URL }}" />
<input type="submit" value="{{ call .T "Save changes" }}" />
</p>
</form>
{{ template "footer" . }}
{{ end }}