40279-vm/frontend/src/menuAside.ts
2026-06-18 05:08:13 +00:00

161 lines
5.0 KiB
TypeScript

import * as icon from '@mdi/js';
import { MenuAsideItem } from './interfaces'
const menuAside: MenuAsideItem[] = [
{
href: '/dashboard',
icon: icon.mdiViewDashboardOutline,
label: 'Dashboard',
},
{
href: '/admin-portal',
icon: icon.mdiShieldAccount,
label: 'Portal Admin',
},
{
href: '/teacher-portal',
icon: icon.mdiHumanMaleBoard,
label: 'Portal Maestros',
},
{
href: '/student-portal',
icon: icon.mdiAccountSchool,
label: 'Portal Estudiantes',
},
{
href: '/parent-portal',
icon: icon.mdiAccountGroup,
label: 'Portal Padres',
},
{
href: '/users/users-list',
label: 'Users',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiAccountGroup ?? icon.mdiTable,
permissions: 'READ_USERS'
},
{
href: '/roles/roles-list',
label: 'Roles',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiShieldAccountVariantOutline ?? icon.mdiTable,
permissions: 'READ_ROLES'
},
{
href: '/permissions/permissions-list',
label: 'Permissions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiShieldAccountOutline ?? icon.mdiTable,
permissions: 'READ_PERMISSIONS'
},
{
href: '/schools/schools-list',
label: 'Schools',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_SCHOOLS'
},
{
href: '/students/students-list',
label: 'Students',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAccountStudent' in icon ? icon['mdiAccountStudent' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_STUDENTS'
},
{
href: '/exams/exams-list',
label: 'Exams',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiClipboardText' in icon ? icon['mdiClipboardText' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_EXAMS'
},
{
href: '/exam_sections/exam_sections-list',
label: 'Exam sections',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiFormatListBulleted' in icon ? icon['mdiFormatListBulleted' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_EXAM_SECTIONS'
},
{
href: '/exam_questions/exam_questions-list',
label: 'Exam questions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiHelpCircle' in icon ? icon['mdiHelpCircle' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_EXAM_QUESTIONS'
},
{
href: '/question_choices/question_choices-list',
label: 'Question choices',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiFormatListChecks' in icon ? icon['mdiFormatListChecks' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_QUESTION_CHOICES'
},
{
href: '/exam_sessions/exam_sessions-list',
label: 'Exam sessions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiCalendarClock' in icon ? icon['mdiCalendarClock' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_EXAM_SESSIONS'
},
{
href: '/session_participants/session_participants-list',
label: 'Session participants',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAccountCheck' in icon ? icon['mdiAccountCheck' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_SESSION_PARTICIPANTS'
},
{
href: '/exam_attempts/exam_attempts-list',
label: 'Exam attempts',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiClipboardCheck' in icon ? icon['mdiClipboardCheck' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_EXAM_ATTEMPTS'
},
{
href: '/attempt_answers/attempt_answers-list',
label: 'Attempt answers',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiFileDocumentEdit' in icon ? icon['mdiFileDocumentEdit' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_ATTEMPT_ANSWERS'
},
{
href: '/report_cards/report_cards-list',
label: 'Report cards',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiChartBox' in icon ? icon['mdiChartBox' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_REPORT_CARDS'
},
{
href: '/profile',
label: 'Profile',
icon: icon.mdiAccountCircle,
},
{
href: '/api-docs',
target: '_blank',
label: 'Swagger API',
icon: icon.mdiFileCode,
permissions: 'READ_API_DOCS'
},
]
export default menuAside