Skip to content
Snippets Groups Projects
index.ts 1.98 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Göbel's avatar
    Daniel Göbel committed
    import { createRouter, createWebHistory } from "vue-router";
    
    import DashboardView from "../views/DashboardView.vue";
    import LoginView from "../views/LoginView.vue";
    
    import { workflowRoutes } from "@/router/workflowRoutes";
    import { s3Routes } from "@/router/s3Routes";
    import { resourceRoutes } from "@/router/resourceRoutes";
    import { adminRoutes } from "@/router/adminRoutes";
    
    import ImprintView from "@/views/ImprintView.vue";
    import PrivacyPolicyView from "@/views/PrivacyPolicyView.vue";
    import TermsOfUsageView from "@/views/TermsOfUsageView.vue";
    
    Daniel Göbel's avatar
    Daniel Göbel committed
    
    const router = createRouter({
      history: createWebHistory(import.meta.env.BASE_URL),
      routes: [
        {
    
          path: "/dashboard",
          name: "dashboard",
          component: DashboardView,
          children: [
    
            ...resourceRoutes,
            ...s3Routes,
            ...workflowRoutes,
            ...adminRoutes,
    
    Daniel Göbel's avatar
    Daniel Göbel committed
        },
        {
    
          path: "/login",
          name: "login",
          component: LoginView,
    
            returnPath: route.query.next ?? undefined,
    
            loginError: route.query.login_error ?? undefined,
    
            invitationToken: route.query.invitation_token ?? undefined,
    
          redirect: {
            name: "buckets",
          },
    
    Daniel Göbel's avatar
    Daniel Göbel committed
        },
    
        {
          path: "/privacy",
          name: "privacy",
          meta: {
            title: "Privacy Policy",
          },
    
          component: PrivacyPolicyView,
    
        },
        {
          path: "/terms",
          name: "terms",
          meta: {
            title: "Terms of Usage",
          },
    
          component: TermsOfUsageView,
    
        },
        {
          path: "/imprint",
          name: "imprint",
          meta: {
            title: "Imprint",
          },
    
          component: ImprintView,
    
        {
          path: "/:pathMatch(.*)",
    
          component: () => import("../views/NotFoundView.vue"),
        },
    
    Daniel Göbel's avatar
    Daniel Göbel committed
      ],
    });
    
    
    router.afterEach((to) => {
      if (to.meta?.title) {
        document.title = to.meta.title + " - CloWM";
      }
    });
    
    
    Daniel Göbel's avatar
    Daniel Göbel committed
    export default router;