9386cc320b
Add API and Functinality for Admin Dashboard. Stills needs to clean-up. See // TODO's
147 lines
No EOL
3.8 KiB
Vue
147 lines
No EOL
3.8 KiB
Vue
<template>
|
|
<v-app dark>
|
|
<!-- <TheSnackbar /> -->
|
|
|
|
<AppSidebar
|
|
v-model="sidebar"
|
|
absolute
|
|
:top-link="topLinks"
|
|
:secondary-links="$auth.user.admin ? adminLinks : null"
|
|
:bottom-links="$auth.user.admin ? bottomLinks : null"
|
|
:user="{ data: true }"
|
|
:secondary-header="$t('user.admin')"
|
|
@input="sidebar = !sidebar"
|
|
/>
|
|
|
|
<TheSnackbar />
|
|
|
|
<AppHeader>
|
|
<v-btn icon @click.stop="sidebar = !sidebar">
|
|
<v-icon> {{ $globals.icons.menu }}</v-icon>
|
|
</v-btn>
|
|
</AppHeader>
|
|
<v-main>
|
|
<v-scroll-x-transition>
|
|
<Nuxt />
|
|
</v-scroll-x-transition>
|
|
</v-main>
|
|
</v-app>
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
import { defineComponent } from "@nuxtjs/composition-api";
|
|
import AppHeader from "@/components/Layout/AppHeader.vue";
|
|
import AppSidebar from "@/components/Layout/AppSidebar.vue";
|
|
import TheSnackbar from "~/components/Layout/TheSnackbar.vue";
|
|
|
|
export default defineComponent({
|
|
components: { AppHeader, AppSidebar, TheSnackbar },
|
|
middleware: "auth",
|
|
auth: true,
|
|
setup() {
|
|
return {};
|
|
},
|
|
data() {
|
|
return {
|
|
sidebar: null,
|
|
topLinks: [
|
|
{
|
|
icon: this.$globals.icons.user,
|
|
to: "/user/profile",
|
|
title: this.$t("sidebar.profile"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.group,
|
|
to: "/user/group",
|
|
title: this.$t("group.group"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.pages,
|
|
to: "/user/group/pages",
|
|
title: this.$t("settings.pages"),
|
|
},
|
|
],
|
|
adminLinks: [
|
|
{
|
|
icon: this.$globals.icons.viewDashboard,
|
|
to: "/admin/dashboard",
|
|
title: this.$t("sidebar.dashboard"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.cog,
|
|
to: "/admin/site-settings",
|
|
title: this.$t("sidebar.site-settings"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.tools,
|
|
to: "/admin/toolbox",
|
|
title: this.$t("sidebar.toolbox"),
|
|
children: [
|
|
{
|
|
icon: this.$globals.icons.bellAlert,
|
|
to: "/admin/toolbox/notifications",
|
|
title: this.$t("events.notification"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.tags,
|
|
to: "/admin/toolbox/categories",
|
|
title: this.$t("sidebar.tags"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.tags,
|
|
to: "/admin/toolbox/tags",
|
|
title: this.$t("sidebar.categories"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.broom,
|
|
to: "/admin/toolbox/organize",
|
|
title: this.$t("settings.organize"),
|
|
},
|
|
],
|
|
},
|
|
{
|
|
icon: this.$globals.icons.group,
|
|
to: "/admin/manage-users",
|
|
title: this.$t("sidebar.manage-users"),
|
|
children: [
|
|
{
|
|
icon: this.$globals.icons.user,
|
|
to: "/admin/manage-users/all-users",
|
|
title: this.$t("user.users"),
|
|
},
|
|
{
|
|
icon: this.$globals.icons.group,
|
|
to: "/admin/manage-users/all-groups",
|
|
title: this.$t("group.groups"),
|
|
},
|
|
],
|
|
},
|
|
{
|
|
icon: this.$globals.icons.import,
|
|
to: "/admin/migrations",
|
|
title: this.$t("sidebar.migrations"),
|
|
},
|
|
],
|
|
bottomLinks: [
|
|
{
|
|
icon: this.$globals.icons.heart,
|
|
title: this.$t("about.support"),
|
|
href: "https://github.com/sponsors/hay-kot",
|
|
},
|
|
{
|
|
icon: this.$globals.icons.information,
|
|
title: this.$t("about.about"),
|
|
to: "/admin/about",
|
|
},
|
|
],
|
|
};
|
|
},
|
|
head: {
|
|
title: "Admin",
|
|
},
|
|
});
|
|
</script>
|
|
|
|
<style scoped>
|
|
</style>+ |