From cd86497b41f54d6518a961cd55d1b14e408e9e97 Mon Sep 17 00:00:00 2001 From: Joyelle Ndagijimana Date: Sun, 16 Mar 2025 16:54:03 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20route=20ge=C3=AFnitialiseerd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/MenuBar.vue | 1 + frontend/src/router/index.ts | 65 ++++++++++------------------- 2 files changed, 23 insertions(+), 43 deletions(-) diff --git a/frontend/src/components/MenuBar.vue b/frontend/src/components/MenuBar.vue index 7d7c4d88..ce4a3a61 100644 --- a/frontend/src/components/MenuBar.vue +++ b/frontend/src/components/MenuBar.vue @@ -9,6 +9,7 @@ // Instantiate variables to use in html to render right // Links and content dependent on the role (student or teacher) + //TODO: use localStorage to know which one in logged in, teacher or student const isTeacher = route.path.includes("teacher"); const userId = route.params.id as string; diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 079c39ef..e69d9fc0 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -1,13 +1,6 @@ -import { createRouter, createWebHistory } from "vue-router"; +import {createRouter, createWebHistory} from "vue-router"; import MenuBar from "@/components/MenuBar.vue"; -import StudentHomepage from "@/views/StudentHomepage.vue"; -import StudentAssignments from "@/views/assignments/StudentAssignments.vue"; -import StudentClasses from "@/views/classes/StudentClasses.vue"; -import StudentDiscussions from "@/views/discussions/StudentDiscussions.vue"; -import TeacherHomepage from "@/views/TeacherHomepage.vue"; -import TeacherAssignments from "@/views/assignments/TeacherAssignments.vue"; -import TeacherClasses from "@/views/classes/TeacherClasses.vue"; -import TeacherDiscussions from "@/views/discussions/TeacherDiscussions.vue"; +import StudentHomepage from "@/views/homepage/StudentHomepage.vue"; import SingleAssignment from "@/views/assignments/SingleAssignment.vue"; import SingleClass from "@/views/classes/SingleClass.vue"; import SingleDiscussion from "@/views/discussions/SingleDiscussion.vue"; @@ -16,6 +9,9 @@ import CreateClass from "@/views/classes/CreateClass.vue"; import CreateAssignment from "@/views/assignments/CreateAssignment.vue"; import CreateDiscussion from "@/views/discussions/CreateDiscussion.vue"; import CallbackPage from "@/views/CallbackPage.vue"; +import UserDiscussions from "@/views/discussions/UserDiscussions.vue"; +import UserClasses from "@/views/classes/UserClasses.vue"; +import UserAssignments from "@/views/classes/UserAssignments.vue"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -34,93 +30,76 @@ const router = createRouter({ path: "/callback", component: CallbackPage, }, + { - path: "/student/:id", + path: "/user", component: MenuBar, + meta: {requiresAuth: true}, children: [ { path: "home", - name: "StudentHomePage", + name: "UserHomePage", component: StudentHomepage, }, { path: "assignment", - name: "StudentAssignments", - component: StudentAssignments, + name: "UserAssignments", + component: UserAssignments, }, { path: "class", - name: "StudentClasses", - component: StudentClasses, + name: "UserClasses", + component: UserClasses, }, { path: "discussion", - name: "StudentDiscussions", - component: StudentDiscussions, + name: "UserDiscussions", + component: UserDiscussions, }, ], }, - { - path: "/teacher/:id", - component: MenuBar, - children: [ - { - path: "home", - name: "TeacherHomepage", - component: TeacherHomepage, - }, - { - path: "assignment", - name: "TeacherAssignments", - component: TeacherAssignments, - }, - { - path: "class", - name: "TeacherClasses", - component: TeacherClasses, - }, - { - path: "discussion", - name: "TeacherDiscussions", - component: TeacherDiscussions, - }, - ], - }, { path: "/assignment/create", name: "CreateAssigment", component: CreateAssignment, + meta: {requiresAuth: true}, }, { path: "/assignment/:id", name: "SingleAssigment", component: SingleAssignment, + meta: {requiresAuth: true}, }, { path: "/class/create", name: "CreateClass", component: CreateClass, + meta: {requiresAuth: true}, }, { path: "/class/:id", name: "SingleClass", component: SingleClass, + meta: {requiresAuth: true}, }, { path: "/discussion/create", name: "CreateDiscussion", component: CreateDiscussion, + meta: {requiresAuth: true}, }, { path: "/discussion/:id", name: "SingleDiscussion", component: SingleDiscussion, + meta: {requiresAuth: true}, }, { path: "/:catchAll(.*)", name: "NotFound", component: NotFound, + meta: {requiresAuth: true}, }, ], });