All checks were successful
delpoy / build-and-deploy (push) Successful in 1m25s
115 lines
3.1 KiB
Svelte
115 lines
3.1 KiB
Svelte
<script lang="ts">
|
|
import Input from '$lib/components/Input/Input.svelte';
|
|
import { env } from '$env/dynamic/public';
|
|
import Select from '$lib/components/Input/Select.svelte';
|
|
import { errorMessage } from '$lib/stores';
|
|
import { createEventDispatcher } from 'svelte';
|
|
|
|
const dispatch = createEventDispatcher();
|
|
|
|
let firstname: string;
|
|
let lastname: string;
|
|
let birthday: string;
|
|
let phone: string;
|
|
let username: string;
|
|
let playertype = 'java';
|
|
|
|
async function newUser() {
|
|
const response = await fetch(`${env.PUBLIC_BASE_PATH}/admin/users`, {
|
|
method: 'PUT',
|
|
body: JSON.stringify({
|
|
firstname: firstname,
|
|
lastname: lastname,
|
|
birthday: birthday,
|
|
telephone: phone,
|
|
username: username,
|
|
playertype: playertype
|
|
})
|
|
});
|
|
if (response.ok) {
|
|
dispatch('submit', {
|
|
firstname: firstname,
|
|
lastname: lastname,
|
|
birthday: birthday,
|
|
telephone: phone,
|
|
username: username,
|
|
playertype: playertype
|
|
});
|
|
globalCloseForm.submit();
|
|
} else {
|
|
$errorMessage = (await response.json()).message;
|
|
}
|
|
}
|
|
|
|
let globalCloseForm: HTMLFormElement;
|
|
|
|
let reportForm: HTMLFormElement;
|
|
let confirmDialog: HTMLDialogElement;
|
|
</script>
|
|
|
|
<form method="dialog" class="modal-box" bind:this={reportForm}>
|
|
<button
|
|
class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2"
|
|
on:click|preventDefault={() => globalCloseForm.submit()}>✕</button
|
|
>
|
|
<h3 class="font-roboto text-xl">Neuer Spieler</h3>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
<Input type="text" required bind:value={firstname}>
|
|
<span slot="label">Vorname</span>
|
|
</Input>
|
|
<Input type="text" required bind:value={lastname}>
|
|
<span slot="label">Nachname</span>
|
|
</Input>
|
|
<Input type="date" required bind:value={birthday}>
|
|
<span slot="label">Geburtstag</span>
|
|
</Input>
|
|
<Input type="tel" bind:value={phone}>
|
|
<span slot="label">Telefonnummer</span>
|
|
</Input>
|
|
<Input type="text" required bind:value={username}>
|
|
<span slot="label">Minecraft-Spielername</span>
|
|
</Input>
|
|
<Select required label="Edition" bind:value={playertype}>
|
|
<option value="java">Java Edition</option>
|
|
<option value="bedrock">Bedrock Edition</option>
|
|
</Select>
|
|
</div>
|
|
<div class="flex flex-row space-x-2 mt-6">
|
|
<Input
|
|
type="submit"
|
|
value="Hinzufügen"
|
|
on:click={(e) => {
|
|
if (reportForm.checkValidity()) {
|
|
e.detail.preventDefault();
|
|
confirmDialog.show();
|
|
}
|
|
}}
|
|
/>
|
|
<Input
|
|
type="submit"
|
|
value="Abbrechen"
|
|
on:click={(e) => {
|
|
e.detail.preventDefault();
|
|
globalCloseForm.submit();
|
|
}}
|
|
/>
|
|
</div>
|
|
</form>
|
|
<form method="dialog" class="modal-backdrop bg-[rgba(0,0,0,.3)]" bind:this={globalCloseForm}>
|
|
<button>close</button>
|
|
</form>
|
|
|
|
<dialog class="modal" bind:this={confirmDialog}>
|
|
<form method="dialog" class="modal-box">
|
|
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
|
<h3 class="font-roboto text-xl mb-2">Spieler hinzufügen?</h3>
|
|
<div class="flex flex-row space-x-2 mt-6">
|
|
<Input type="submit" value="Hinzufügen" on:click={newUser} />
|
|
<Input type="submit" value="Abbrechen" />
|
|
</div>
|
|
</form>
|
|
<form method="dialog" class="modal-backdrop bg-[rgba(0,0,0,.3)]">
|
|
<button>close</button>
|
|
</form>
|
|
</dialog>
|