summaryrefslogtreecommitdiff
path: root/pages/admin/index.vue
diff options
context:
space:
mode:
Diffstat (limited to 'pages/admin/index.vue')
-rw-r--r--pages/admin/index.vue39
1 files changed, 39 insertions, 0 deletions
diff --git a/pages/admin/index.vue b/pages/admin/index.vue
new file mode 100644
index 0000000..679f82f
--- /dev/null
+++ b/pages/admin/index.vue
@@ -0,0 +1,39 @@
+<template lang="pug">
+ .mx-auto.w-90p.py-6(class="sm:px-6 lg:px-8 md:max-w-7xl")
+ h1.text-3xl.font-bold(class="dark:text-white") Users
+ .grid.grid-cols-6.mt-3
+ div
+ admin-sidebar
+ section#tables.col-span-5
+ v-table(
+ :keys="['id', 'avatar', 'username', 'email', 'is_staff', 'name']"
+ :fields="users"
+ path="/users/"
+ )
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+
+import AdminSidebar from "@/components/AdminSidebar.vue";
+import VTable from "@/components/VTable.vue";
+
+export default {
+ name: "AdminView",
+ head: { title: "Admin panel ยท Verden" },
+ computed: {
+ ...mapGetters("auth", ["isLogged", "me"]),
+ ...mapGetters("users", ["users"]),
+ },
+ components: { AdminSidebar, "v-table": VTable },
+ async mounted() {
+ await this.$store.dispatch("auth/findMe");
+
+ if (!(this.isLogged && this.me && this.me.is_staff)) {
+ window.location.href = "/";
+ }
+
+ this.$store.dispatch("users/getUsers", { page: 0 });
+ },
+};
+</script>