go-ssb-room/web/templates/admin/member-list.tmpl

124 lines
4.3 KiB
Cheetah

<!--
SPDX-FileCopyrightText: 2021 The NGI Pointer Secure-Scuttlebutt Team of 2020/2021
SPDX-License-Identifier: CC-BY-4.0
-->
{{ define "title" }}{{i18n "AdminMembersTitle"}}{{ end }}
{{ define "content" }}
<h1
class="text-3xl tracking-tight font-black text-black mt-2 mb-4"
>{{i18n "AdminMembersTitle"}}</h1>
<p id="welcome" class="my-2">{{i18n "AdminMembersWelcome"}}</p>
{{ template "flashes" . }}
<form
id="add-entry"
action="{{urlTo "admin:members:add"}}"
method="POST"
>
{{ .csrfField }}
<label class="block mt-6 mb-1 text-sm text-gray-500">{{ i18n "AdminAddNewMemberTitle" }}</label>
<div id="add-member-input-container" class="flex flex-row items-center justify-start mb-6">
<input
type="text"
name="pub_key"
placeholder="{{i18n "PubKeyRefPlaceholder"}}"
class="w-8/12 self-stretch shadow rounded border border-transparent h-10 p-1 pl-4 font-mono truncate
text-purple-600 focus:outline-none focus:ring-2 focus:ring-purple-400 focus:border-transparent
">
<button
type="submit"
class="ml-4 h-10 shadow rounded px-6 text-purple-600 ring-1 bg-white focus:outline-none focus:ring-2 focus:ring-purple-400
ring-purple-400 hover:bg-purple-600 hover:text-gray-100
"
>{{i18n "AdminMembersAdd"}}</button>
</div>
</form>
<p
id="membersCount"
class="text-lg font-bold my-2 ml-4"
>{{i18npl "MemberCount" .Count}}</p>
{{ $self := is_logged_in }}
<ul id="theList" class="pb-4">
{{range $index, $member := .Entries}}
<li class="odd:bg-gray-100 rounded-lg relative z-0 hover:z-10 hover:bg-white hover:shadow-md py-2">
<a href="{{urlTo "admin:member:details" "id" $member.ID}}" class="group flex flex-row items-center min-h-12 px-4 rounded-lg">
<div class="flex flex-col flex-1 justify-center max-w-full">
<span class="font-mono truncate text-gray-600 group-hover:text-gray-800">{{$member.PubKey.Ref}}</span>
<div class="inline-block min-h-6">
{{if eq .ID $self.ID}}
<span class="mr-1 text-green-800 bg-green-100 rounded-lg px-2">{{i18n "AdminMembersSelf"}}</span>
{{end}}
{{range $member.Aliases}}
<span class="mr-1 text-purple-800 bg-purple-100 rounded-lg px-2">{{.Name}}</span>
{{end}}
{{if eq .Role.String "RoleModerator"}}
<span
data-role="moderator"
class="text-blue-800 bg-blue-100 border-blue-800 rounded-lg px-2"
>{{i18n "RoleModerator"}}</span>
{{else if eq .Role.String "RoleAdmin"}}
<span
data-role="admin"
class="text-yellow-800 bg-yellow-100 border-yellow-800 rounded-lg px-2"
>{{i18n "RoleAdmin"}}</span>
{{end}}
</div>
</div>
<svg class="w-6 h-6 text-gray-400 group-hover:text-purple-600" viewBox="0 0 24 24">
<path fill="currentColor" d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" />
</svg>
</a>
</li>
{{end}}
</ul>
{{$pageNums := .Paginator.PageNums}}
{{$view := .View}}
{{if gt $pageNums 1}}
<div class="flex flex-row justify-center">
{{if not .FirstInView}}
<a
href="{{urlTo "admin:members:overview"}}?page=1"
class="rounded px-3 py-2 text-pink-600 border-transparent hover:border-pink-400 border-2"
>1</a>
<span
class="px-3 py-2 text-gray-400 border-2 border-transparent"
>..</span>
{{end}}
{{range $view.Pages}}
{{if le . $pageNums}}
{{if eq . $view.Current}}
<span
class="px-3 py-2 cursor-default text-gray-500 border-2 border-transparent"
>{{.}}</span>
{{else}}
<a
href="{{urlTo "admin:members:overview"}}?page={{.}}"
class="rounded px-3 py-2 mx-1 text-pink-600 border-transparent hover:border-pink-400 border-2"
>{{.}}</a>
{{end}}
{{end}}
{{end}}
{{if not .LastInView}}
<span
class="px-3 py-2 text-gray-400 border-2 border-transparent"
>..</span>
<a
href="{{urlTo "admin:members:overview"}}?page={{$view.Last}}"
class="rounded px-3 py-2 text-pink-600 border-transparent hover:border-pink-400 border-2"
>{{$view.Last}}</a>
{{end}}
</div>
{{end}}
{{end}}