add / edit / delete user warrens
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<script setup lang="ts">
|
||||
definePageMeta({
|
||||
layout: 'admin',
|
||||
middleware: ['is-admin'],
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<p>/admin/stats</p>
|
||||
</template>
|
||||
@@ -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>
|
||||
@@ -1,10 +0,0 @@
|
||||
<script setup lang="ts">
|
||||
definePageMeta({
|
||||
layout: 'admin',
|
||||
middleware: ['is-admin'],
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<p>/admin/warrens</p>
|
||||
</template>
|
||||
@@ -46,7 +46,7 @@ const onSubmit = form.handleSubmit(async (values) => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Card class="w-full max-w-sm">
|
||||
<Card class="w-full max-w-sm border-0 md:border">
|
||||
<CardHeader>
|
||||
<CardTitle class="text-2xl">Login</CardTitle>
|
||||
<CardDescription>
|
||||
|
||||
@@ -45,7 +45,7 @@ const onSubmit = form.handleSubmit(async (values) => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Card class="w-full max-w-sm">
|
||||
<Card class="w-full max-w-sm border-0 md:border">
|
||||
<CardHeader>
|
||||
<CardTitle class="text-2xl">Register</CardTitle>
|
||||
<CardDescription>Create a new user account</CardDescription>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { ScrollArea } from '@/components/ui/scroll-area';
|
||||
import type { Warren } from '#shared/types/warrens';
|
||||
import type { WarrenData } from '#shared/types/warrens';
|
||||
|
||||
definePageMeta({
|
||||
middleware: ['authenticated'],
|
||||
@@ -8,7 +8,7 @@ definePageMeta({
|
||||
|
||||
const store = useWarrenStore();
|
||||
|
||||
function selectWarren(warren: Warren) {
|
||||
function selectWarren(warren: WarrenData) {
|
||||
store.setCurrentWarren(warren.id, '/');
|
||||
navigateTo({
|
||||
path: '/warrens/files',
|
||||
|
||||
Reference in New Issue
Block a user