mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 17:25:32 +00:00
started overview
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{{ $model := . }}
|
||||
|
||||
|
||||
<div class="flex max-w-lg mx-auto !pt-44">
|
||||
<div class="flex container-normal bg-slate-100 mx-auto !pt-36 px-8">
|
||||
<div class="flex-col w-full">
|
||||
{{ if $model.redirect_url }}
|
||||
<a href="{{ $model.redirect_url }}" class="text-gray-700 hover:text-slate-950">
|
||||
@@ -12,7 +12,11 @@
|
||||
<i class="ri-arrow-left-s-line"></i> Startseite
|
||||
</a>
|
||||
{{ end }}
|
||||
<h1 class="text-2xl self-baseline w-full my-6 font-bold">Benutzer bearbeiten</h1>
|
||||
<h1 class="text-2xl self-baseline w-full my-6 font-bold text-slate-900">Profil bearbeiten</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex container-normal mx-auto px-8 mt-4">
|
||||
<div class="flex-col max-w-2xl w-full">
|
||||
{{ if $model.success }}
|
||||
<div
|
||||
class="text-green-800 text-sm mt-2 rounded bg-green-200 p-2 font-bold border-green-700
|
||||
@@ -29,8 +33,9 @@
|
||||
{{ end }}
|
||||
<form class="w-full grid grid-cols-3 gap-4" method="POST" x-data="{ openpw: false }">
|
||||
<div
|
||||
class="col-span-3 border-2 border-transparent focus-within:border-slate-600 px-2 py-1 pb-1.5
|
||||
bg-slate-200 focus-within:bg-slate-50 rounded-md transition-all duration-100">
|
||||
class="col-span-3 border-2 border-transparent px-2
|
||||
py-1 pb-1.5 border-l-2 focus-within:border-l-slate-600
|
||||
bg-slate-200 focus-within:bg-slate-100 transition-all duration-100">
|
||||
<label for="username" class="text-sm text-gray-700 font-bold">
|
||||
Name <i class="ri-text"></i>
|
||||
</label>
|
||||
@@ -46,8 +51,9 @@
|
||||
autofocus />
|
||||
</div>
|
||||
<div
|
||||
class="col-span-3 border-2 border-transparent focus-within:border-slate-600 px-2 py-1 pb-1.5
|
||||
bg-slate-200 focus-within:bg-slate-50 rounded-md transition-all duration-100">
|
||||
class="col-span-3 border-2 border-transparent px-2
|
||||
py-1 pb-1.5 border-l-2 focus-within:border-l-slate-600
|
||||
bg-slate-200 focus-within:bg-slate-100 transition-all duration-100">
|
||||
<label for="username" class="text-sm text-gray-700 font-bold">
|
||||
E-Mail <i class="ri-at-line"></i>
|
||||
</label>
|
||||
@@ -62,8 +68,9 @@
|
||||
value="{{ $model.user.Email }}" />
|
||||
</div>
|
||||
<div
|
||||
class="col-span-3 border-2 border-transparent focus-within:border-slate-600 px-2 py-1
|
||||
pb-1.5 bg-slate-200 focus-within:bg-slate-50 rounded-md transition-all duration-100">
|
||||
class="col-span-3 border-2 border-transparent px-2
|
||||
py-1 pb-1.5 border-l-2 focus-within:border-l-slate-600
|
||||
bg-slate-200 focus-within:bg-slate-100 transition-all duration-100">
|
||||
<label for="role" class="text-sm text-gray-700 font-bold">
|
||||
Rolle <i class="ri-user-3-line"></i>
|
||||
</label>
|
||||
@@ -98,12 +105,12 @@
|
||||
{{- if not (eq $model.request.user.Role "Admin") -}}
|
||||
<div
|
||||
x-bind:style="!openpw ? 'display:none' : ''"
|
||||
class="col-span-3 border-2 border-transparent focus-within:border-slate-600 px-2 py-1 pb-1.5
|
||||
bg-slate-200 focus-within:bg-slate-50 rounded-md transition-all duration-100">
|
||||
class="col-span-3 border-2 border-transparent px-2
|
||||
py-1 pb-1.5 border-l-2 focus-within:border-l-slate-600
|
||||
bg-slate-200 focus-within:bg-slate-100 transition-all duration-100">
|
||||
<label for="password_old" class="text-sm text-gray-700 font-bold"> Altes Passwort </label>
|
||||
<input
|
||||
x-bind:type="openpw ? 'password' : 'hidden'"
|
||||
minlength="10"
|
||||
name="password_old"
|
||||
id="password_old"
|
||||
class="mt-1 block w-full rounded-md focus:border-none focus:outline-none"
|
||||
@@ -113,8 +120,9 @@
|
||||
{{- end -}}
|
||||
<div
|
||||
x-bind:style="!openpw ? 'display:none' : ''"
|
||||
class="col-span-3 border-2 border-transparent focus-within:border-slate-600 px-2 py-1 pb-1.5
|
||||
bg-slate-200 focus-within:bg-slate-50 rounded-md transition-all duration-100">
|
||||
class="col-span-3 border-2 border-transparent px-2
|
||||
py-1 pb-1.5 border-l-2 focus-within:border-l-slate-600
|
||||
bg-slate-200 focus-within:bg-slate-100 transition-all duration-100">
|
||||
<label for="password" class="text-sm text-gray-700 font-bold"> Neues Passwort </label>
|
||||
<input
|
||||
x-bind:type="openpw ? 'password' : 'hidden'"
|
||||
@@ -127,8 +135,9 @@
|
||||
</div>
|
||||
<div
|
||||
x-bind:style="!openpw ? 'display:none' : ''"
|
||||
class="col-span-3 border-2 border-transparent focus-within:border-slate-600 px-2 py-1 pb-1.5
|
||||
bg-slate-200 focus-within:bg-slate-50 rounded-md transition-all duration-100">
|
||||
class="col-span-3 border-2 border-transparent px-2
|
||||
py-1 pb-1.5 border-l-2 focus-within:border-l-slate-600
|
||||
bg-slate-200 focus-within:bg-slate-100 transition-all duration-100">
|
||||
<label for="password_repeat" class="text-sm text-gray-700 font-bold">
|
||||
Passwort wiederholen
|
||||
</label>
|
||||
|
||||
@@ -52,28 +52,46 @@
|
||||
|
||||
genQRCode();
|
||||
if (tokenElement) {
|
||||
tokenElement.addEventListener('focus', () => tokenElement.select());
|
||||
tokenElement.addEventListener('focus', (ev) => {
|
||||
ev.preventDefault();
|
||||
tokenElement.select();
|
||||
});
|
||||
tokenElement.addEventListener('mousedown', (ev) => {
|
||||
ev.preventDefault();
|
||||
tokenElement.select();
|
||||
});
|
||||
tokenElement.addEventListener('mouseup', (ev) => {
|
||||
ev.preventDefault();
|
||||
tokenElement.select();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="flex max-w-md mx-auto !pt-44 user-invites">
|
||||
<div class="flex container-normal bg-slate-100 mx-auto !pt-36 px-8">
|
||||
<div class="flex-col w-full">
|
||||
{{- if not $model.redirect_url -}}
|
||||
<a href="/" class="text-gray-700 hover:text-slate-950 mb-9 block">
|
||||
<i class="ri-arrow-left-s-line"></i> Startseite
|
||||
</a>
|
||||
{{- else -}}
|
||||
<a href="{{ $model.redirect_url }}" class="text-gray-700 hover:text-slate-950 mb-9 block">
|
||||
{{ if $model.redirect_url }}
|
||||
<a href="{{ $model.redirect_url }}" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Zurück
|
||||
</a>
|
||||
{{- end -}}
|
||||
<!--
|
||||
<div class="mb-6">
|
||||
<h1 class="text-2xl font-bold text-slate-900 text-center">Benutzer einladen</h1>
|
||||
{{ else }}
|
||||
<a href="/" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Startseite
|
||||
</a>
|
||||
{{ end }}
|
||||
<h1 class="text-2xl self-baseline w-full mt-6 mb-2 font-bold text-slate-900">
|
||||
Nutzer einladen
|
||||
</h1>
|
||||
<div class="text-sm text-slate-600 !hyphens-auto mb-6 max-w-[60ch]">
|
||||
<i class="ri-question-line"></i>
|
||||
Mit diesem Link können neue Accounts des jeweiligen Typs registriert werden. Geben Sie den
|
||||
Link an Personen weiter, die Sie einladen möchten.
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-invites flex container-normal mx-auto px-8 mt-4">
|
||||
<div class="flex-col max-w-xl w-full">
|
||||
<div
|
||||
class="col-span-9 grid grid-cols-3 justify-between mb-4 py-1 px-1 border rounded-md gap-x-2
|
||||
class="col-span-9 grid grid-cols-3 justify-between mb-4 py-1 px-1 border rounded-xs gap-x-2
|
||||
bg-slate-200 user-chooser">
|
||||
<a
|
||||
href="/user/management/access/User?redirectTo={{ $model.redirect_url }}"
|
||||
@@ -101,21 +119,22 @@
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
<div class="col-span-7 col-start-2 mb-4 p-4 border rounded-lg shadow hidden" id="qr"></div>
|
||||
<div class="col-span-7 col-start-2 mb-4 p-4 border rounded-xs hidden" id="qr"></div>
|
||||
<div class="col-span-9 mb-6 flex flex-col">
|
||||
<div class="flex flex-row">
|
||||
<input
|
||||
type="text"
|
||||
name="token"
|
||||
id="token"
|
||||
class="w-full text-center border border-slate-300 rounded-md shadow-sm
|
||||
class="w-full text-center border border-slate-300 rounded-xs
|
||||
focus:border-slate-500 focus:ring-slate-500 p-1 px-2 overflow-ellipsis"
|
||||
value="{{ $model.access_url }}"
|
||||
deactive
|
||||
readonly />
|
||||
<button
|
||||
type="button"
|
||||
class="ml-2 inline-flex justify-center py-2 px-3 border border-transparent rounded-md
|
||||
class="ml-2 inline-flex justify-center py-2 px-3 border border-transparent
|
||||
rounded-xs
|
||||
shadow-sm text-sm font-medium text-white bg-slate-700 hover:bg-slate-800 cursor-pointer
|
||||
focus:outline-none no-underline
|
||||
focus:ring-2 focus:ring-offset-2 focus:ring-slate-500"
|
||||
@@ -125,83 +144,75 @@
|
||||
<a
|
||||
href="{{ $model.relative_url }}"
|
||||
target="_blank"
|
||||
class="ml-2 inline-flex justify-center py-2 px-3 border border-transparent rounded-md
|
||||
class="ml-2 inline-flex justify-center py-2 px-3 border border-transparent
|
||||
rounded-xs
|
||||
shadow-sm text-sm font-medium text-white bg-slate-700 hover:bg-slate-800 cursor-pointer
|
||||
focus:outline-none no-underline
|
||||
focus:ring-2 focus:ring-offset-2 focus:ring-slate-500">
|
||||
<i class="ri-external-link-line"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-span-9 text-center text-slate-400 mb-1 mt-3">
|
||||
Gültig bis zum
|
||||
{{ $model.validUntil }}
|
||||
</div>
|
||||
<div class="mt-2 text-sm text-slate-600 flex flex-row gap-x-2">
|
||||
<div>
|
||||
<i class="ri-information-line"></i>
|
||||
</div>
|
||||
<div>
|
||||
Unter diesem Link können neue Accounts registriert werden. Geben Sie diesen Link an neue
|
||||
Nutzer der Datenbank weiter.
|
||||
</div>
|
||||
</div>
|
||||
{{ if eq $model.role "User" }}
|
||||
<div class="mt-1 text-sm text-blue-600 flex flex-row gap-x-2">
|
||||
<div>
|
||||
<i class="ri-information-line"></i>
|
||||
</div>
|
||||
<div>Benutzer können private Felder und Daten einsehen, aber nicht bearbeiten.</div>
|
||||
</div>
|
||||
{{ else if eq $model.role "Admin" }}
|
||||
<div class="mt-1 text-sm text-red-600 flex flex-row gap-x-2">
|
||||
<div>
|
||||
<i class="ri-information-line"></i>
|
||||
</div>
|
||||
<div>
|
||||
Administratoren können alle Felder und Daten einsehen und bearbeiten. Administratoren
|
||||
können Nutzer einladen und löschen.
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq $model.role "Editor" }}
|
||||
<div class="mt-1 text-sm text-orange-600 flex flex-row gap-x-2">
|
||||
<div>
|
||||
<i class="ri-information-line"></i>
|
||||
</div>
|
||||
<div>Redakteure können alle Felder und Daten der Datenbank einsehen und bearbeiten.</div>
|
||||
</div>
|
||||
{{- end -}}
|
||||
</div>
|
||||
<form class="w-full grid grid-cols-9 gap-4" method="POST">
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_nonce"
|
||||
id="csrf_nonce"
|
||||
required
|
||||
value="{{ $model.csrf_nonce }}" />
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_token"
|
||||
id="csrf_token"
|
||||
required
|
||||
value="{{ $model.csrf_token }}" />
|
||||
<form class="" method="POST">
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_nonce"
|
||||
id="csrf_nonce"
|
||||
required
|
||||
value="{{ $model.csrf_nonce }}" />
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_token"
|
||||
id="csrf_token"
|
||||
required
|
||||
value="{{ $model.csrf_token }}" />
|
||||
|
||||
<div class="col-span-9 flex flex-row items-center justify-center">
|
||||
<button
|
||||
type="submit"
|
||||
class="inline-flex justify-center py-2 px-3 border border-transparent rounded-full
|
||||
<div class="col-span-9 flex flex-row items-center justify-center">
|
||||
<button
|
||||
type="submit"
|
||||
class="ml-2 inline-flex justify-center py-2 px-3 border border-transparent
|
||||
rounded-xs
|
||||
shadow-sm text-sm font-medium text-white bg-slate-700 hover:bg-slate-800 cursor-pointer
|
||||
focus:outline-none no-underline
|
||||
focus:ring-2 focus:ring-offset-2 focus:ring-slate-500">
|
||||
<i class="ri-loop-left-line"></i>
|
||||
</button>
|
||||
<i class="ri-loop-left-line"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--
|
||||
<div class="col-span-3">
|
||||
<a href="/forgot-password" class="text-sm text-slate-600 hover:text-slate-900">
|
||||
Passwort vergessen?
|
||||
</a>
|
||||
<div class="col-span-9 text-right text-slate-400 mb-1 mt-3">
|
||||
Gültig bis
|
||||
{{ $model.validUntil }}
|
||||
</div>
|
||||
-->
|
||||
</form>
|
||||
{{ if eq $model.role "User" }}
|
||||
<div class="max-w-[60ch] mt-1 text-sm text-blue-600 flex flex-row gap-x-2 hyphens-auto">
|
||||
<div>
|
||||
<i class="ri-error-warning-line"></i>
|
||||
</div>
|
||||
<div>
|
||||
Benutzer können private Felder und Datensätze einsehen, aber nicht bearbeiten oder
|
||||
löschen.
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq $model.role "Admin" }}
|
||||
<div class="max-w-[60ch] mt-1 text-sm text-red-600 flex flex-row gap-x-2 hyphens-auto">
|
||||
<div>
|
||||
<i class="ri-error-warning-line"></i>
|
||||
</div>
|
||||
<div>
|
||||
Administratoren können alle Felder und Datensätze einsehen, bearbeiten und löschen.
|
||||
Administratoren können Passwörter setzen, Nutzer einladen und deaktivieren.
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq $model.role "Editor" }}
|
||||
<div class="max-w-[60ch] mt-1 text-sm text-orange-600 flex flex-row gap-x-2 hyphens-auto">
|
||||
<div>
|
||||
<i class="ri-error-warning-line"></i>
|
||||
</div>
|
||||
<div>
|
||||
Redakteure können alle Felder und Datensätze der Datenbank einsehen, bearbeiten und
|
||||
löschen.
|
||||
</div>
|
||||
</div>
|
||||
{{- end -}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
{{ $model := . }}
|
||||
|
||||
|
||||
<div class="flex container-normal bg-slate-100 mx-auto !pt-36 px-8">
|
||||
<div class="flex-col w-full">
|
||||
{{ if $model.redirect_url }}
|
||||
<a href="{{ $model.redirect_url }}" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Zurück
|
||||
</a>
|
||||
{{ else }}
|
||||
<a href="/" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Startseite
|
||||
</a>
|
||||
{{ end }}
|
||||
<h1
|
||||
class="text-2xl self-baseline w-full my-6 font-bold
|
||||
text-slate-900">
|
||||
Benutzerverwaltung
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex container-normal mx-auto px-8 mt-4">
|
||||
<div class="flex-col max-w-2xl w-full">
|
||||
{{ if $model.success }}
|
||||
<div
|
||||
class="text-green-800 text-sm mt-2 rounded bg-green-200 p-2 font-bold border-green-700
|
||||
border-2 mb-3">
|
||||
{{ $model.success }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if $model.error }}
|
||||
<div
|
||||
class="text-red-800 text-sm mt-2 rounded bg-red-200 p-2 font-bold border-red-700
|
||||
border-2 mb-3">
|
||||
{{ $model.error }}
|
||||
</div>
|
||||
{{ end }}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>E-Mail</th>
|
||||
<th>Rolle</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range $u := $model.users }}
|
||||
<tr>
|
||||
<td>{{ $u.Name }}</td>
|
||||
<td>{{ $u.Email }}</td>
|
||||
<td>{{ $u.Role }}</td>
|
||||
<td>
|
||||
<a
|
||||
href="/user/{{ $u.Id }}/edit?redirectTo={{ $model.request.fullpath }}"
|
||||
class="text-blue-500 hover:text-blue-700">
|
||||
<i class="ri-edit-line"></i> Bearbeiten
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,17 +3,22 @@
|
||||
|
||||
<div class="flex max-w-md mx-auto !pt-44">
|
||||
<div class="flex-col w-full">
|
||||
<a href="/" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Startseite
|
||||
</a>
|
||||
{{- if $model.redirect_url -}}
|
||||
<a href="{{ $model.redirect_url }}" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Zurück
|
||||
</a>
|
||||
{{- else -}}
|
||||
<a href="/" class="text-gray-700 hover:text-slate-950">
|
||||
<i class="ri-arrow-left-s-line"></i> Startseite
|
||||
</a>
|
||||
{{- end -}}
|
||||
<div class="flex justify-center mt-8 items-baseline">
|
||||
<div>
|
||||
<img class="h-20 w-20 border" src="/assets/favicon.png" />
|
||||
<img class="h-18 w-18 border" src="/assets/favicon.png" />
|
||||
</div>
|
||||
</div>
|
||||
<h1 class="text-4xl self-baseline text-center w-full my-6">
|
||||
Musenalm<br class="mb-3" />
|
||||
Neuer
|
||||
<h1 class="text-2xl self-baseline text-center w-full my-6 text-slate-900">
|
||||
Musenalm | Neuer
|
||||
{{ if eq $model.role "User" -}}
|
||||
Nutzer
|
||||
{{ else if eq $model.role "Admin" -}}
|
||||
|
||||
Reference in New Issue
Block a user