display users and roles
This commit is contained in:
parent
eff79a4697
commit
2d0fb30558
12 changed files with 330 additions and 14 deletions
46
src/views/admin/user/Role.vue
Normal file
46
src/views/admin/user/Role.vue
Normal file
|
@ -0,0 +1,46 @@
|
|||
<template>
|
||||
<MainTemplate>
|
||||
<template #topBar>
|
||||
<div class="flex flex-row items-center justify-between pt-5 pb-3 px-7">
|
||||
<h1 class="font-bold text-xl h-8">Rollen</h1>
|
||||
</div>
|
||||
</template>
|
||||
<template #diffMain>
|
||||
<div class="flex flex-col gap-4 grow pl-7">
|
||||
<div class="flex flex-col gap-2 grow overflow-y-scroll pr-7">
|
||||
<RoleListItem v-for="role in roles" :key="role.id" :role="role" />
|
||||
</div>
|
||||
<div class="flex flex-row gap-4">
|
||||
<button primary class="!w-fit" @click="openCreateModal">Rolle erstellen</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</MainTemplate>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineAsyncComponent, defineComponent, markRaw } from "vue";
|
||||
import { mapState, mapActions } from "pinia";
|
||||
import MainTemplate from "@/templates/Main.vue";
|
||||
import { useRoleStore } from "../../../stores/admin/role";
|
||||
import RoleListItem from "@/components/admin/user/role/RoleListItem.vue";
|
||||
import { useModalStore } from "@/stores/modal";
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
export default defineComponent({
|
||||
computed: {
|
||||
...mapState(useRoleStore, ["roles"]),
|
||||
},
|
||||
mounted() {
|
||||
this.fetchRoles();
|
||||
},
|
||||
methods: {
|
||||
...mapActions(useRoleStore, ["fetchRoles"]),
|
||||
...mapActions(useModalStore, ["openModal"]),
|
||||
openCreateModal() {
|
||||
this.openModal(markRaw(defineAsyncComponent(() => import("@/components/admin/user/role/CreateRoleModal.vue"))));
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
|
@ -5,19 +5,38 @@
|
|||
<h1 class="font-bold text-xl h-8">Benutzer</h1>
|
||||
</div>
|
||||
</template>
|
||||
<template #main>
|
||||
<Permission />
|
||||
<template #diffMain>
|
||||
<div class="flex flex-col gap-4 grow pl-7">
|
||||
<div class="flex flex-col gap-2 grow overflow-y-scroll pr-7">
|
||||
<UserListItem v-for="user in users" :key="user.id" :user="user" />
|
||||
</div>
|
||||
<div class="flex flex-row gap-4">
|
||||
<button primary class="!w-fit">Nutzer einladen</button>
|
||||
<button primary-outline class="!w-fit">offene Einladungen</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</MainTemplate>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import { mapState } from "pinia";
|
||||
import { mapState, mapActions } from "pinia";
|
||||
import MainTemplate from "@/templates/Main.vue";
|
||||
import Permission from "@/components/admin/user/Permission.vue";
|
||||
import { useUserStore } from "@/stores/admin/user";
|
||||
import UserListItem from "@/components/admin/user/user/UserListItem.vue";
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
export default defineComponent({});
|
||||
export default defineComponent({
|
||||
computed: {
|
||||
...mapState(useUserStore, ["users"]),
|
||||
},
|
||||
mounted() {
|
||||
this.fetchUsers();
|
||||
},
|
||||
methods: {
|
||||
...mapActions(useUserStore, ["fetchUsers"]),
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue