add / edit / delete user warrens

This commit is contained in:
2025-07-21 19:27:41 +02:00
parent 50e066f794
commit 2c26002507
86 changed files with 2197 additions and 300 deletions

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
definePageMeta({
layout: 'admin',
middleware: ['is-admin'],
middleware: ['authenticated', 'is-admin'],
});
const session = useAuthSession();
@@ -12,13 +12,8 @@ const adminStore = useAdminStore();
<div class="grid gap-4 lg:grid-cols-2">
<Card class="overflow-hidden">
<CardHeader>
<CardTitle
><NuxtLink to="/admin/users">Users</NuxtLink></CardTitle
>
<CardDescription
>Add users or modify existing users' permissions or
warrens</CardDescription
>
<CardTitle>Users</CardTitle>
<CardDescription>Create or manage users</CardDescription>
</CardHeader>
<CardContent class="max-h-64 overflow-hidden">
<ScrollArea class="h-full w-full overflow-hidden">
@@ -34,8 +29,7 @@ const adminStore = useAdminStore();
variant="outline"
size="icon"
@click="
() =>
adminStore.openEditUserDialog(user)
() => adminStore.setEditUserDialog(user)
"
>
<Icon name="lucide:pencil" />
@@ -67,5 +61,44 @@ const adminStore = useAdminStore();
</div>
</CardFooter>
</Card>
<Card class="overflow-hidden">
<CardHeader>
<CardTitle>Warrens</CardTitle>
<CardDescription>Create or manage warrens</CardDescription>
</CardHeader>
<CardContent class="max-h-64 grow overflow-hidden">
<ScrollArea class="h-full w-full overflow-hidden">
<div class="flex w-full flex-col gap-2 overflow-hidden">
<AdminWarrenListing
v-for="warren in adminStore.resources.warrens"
:key="warren.id"
:warren
>
<template #actions>
<Button
class="m-1"
variant="outline"
size="icon"
><Icon name="lucide:pencil"
/></Button>
<Button
class="m-1"
variant="destructive"
size="icon"
><Icon name="lucide:trash-2"
/></Button>
</template>
</AdminWarrenListing>
</div>
</ScrollArea>
</CardContent>
<CardFooter>
<div class="mt-4 flex grow flex-row justify-end">
<Button @click="adminStore.openCreateUserDialog"
>Create</Button
>
</div>
</CardFooter>
</Card>
</div>
</template>

View File

@@ -1,10 +0,0 @@
<script setup lang="ts">
definePageMeta({
layout: 'admin',
middleware: ['is-admin'],
});
</script>
<template>
<p>/admin/stats</p>
</template>

View File

@@ -1,22 +0,0 @@
<script setup lang="ts">
definePageMeta({
layout: 'admin',
middleware: ['is-admin'],
});
const adminStore = useAdminStore();
</script>
<template>
<div class="flex h-full w-full">
<ScrollArea class="h-full grow">
<div class="flex w-full flex-col gap-2">
<AdminUserListing
v-for="user in adminStore.resources.users"
:key="user.id"
:user
/>
</div>
</ScrollArea>
</div>
</template>

View File

@@ -1,10 +0,0 @@
<script setup lang="ts">
definePageMeta({
layout: 'admin',
middleware: ['is-admin'],
});
</script>
<template>
<p>/admin/warrens</p>
</template>