38893-vm/frontend/src/menuAside.ts
2026-02-28 23:06:20 +00:00

196 lines
7.0 KiB
TypeScript

import * as icon from '@mdi/js';
import { MenuAsideItem } from './interfaces'
const menuAside: MenuAsideItem[] = [
{
href: '/dashboard',
icon: icon.mdiViewDashboardOutline,
label: 'Dashboard',
},
{
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: '/user_sessions/user_sessions-list',
label: 'User sessions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiShieldAccount' in icon ? icon['mdiShieldAccount' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_USER_SESSIONS'
},
{
href: '/password_reset_tokens/password_reset_tokens-list',
label: 'Password reset tokens',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiLockReset' in icon ? icon['mdiLockReset' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_PASSWORD_RESET_TOKENS'
},
{
href: '/topics/topics-list',
label: 'Topics',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiTagOutline' in icon ? icon['mdiTagOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TOPICS'
},
{
href: '/tags/tags-list',
label: 'Tags',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiTagMultiple' in icon ? icon['mdiTagMultiple' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TAGS'
},
{
href: '/knowledge_files/knowledge_files-list',
label: 'Knowledge files',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiFileDocumentOutline' in icon ? icon['mdiFileDocumentOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_KNOWLEDGE_FILES'
},
{
href: '/planned_tasks/planned_tasks-list',
label: 'Planned tasks',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiClipboardTextOutline' in icon ? icon['mdiClipboardTextOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_PLANNED_TASKS'
},
{
href: '/user_test_preferences/user_test_preferences-list',
label: 'User test preferences',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiTune' in icon ? icon['mdiTune' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_USER_TEST_PREFERENCES'
},
{
href: '/test_sessions/test_sessions-list',
label: 'Test sessions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiTimerOutline' in icon ? icon['mdiTimerOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TEST_SESSIONS'
},
{
href: '/test_questions/test_questions-list',
label: 'Test questions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiHelpCircleOutline' in icon ? icon['mdiHelpCircleOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TEST_QUESTIONS'
},
{
href: '/test_answers/test_answers-list',
label: 'Test answers',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiCheckboxMarkedCircleOutline' in icon ? icon['mdiCheckboxMarkedCircleOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TEST_ANSWERS'
},
{
href: '/blocked_websites/blocked_websites-list',
label: 'Blocked websites',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiWebOff' in icon ? icon['mdiWebOff' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_BLOCKED_WEBSITES'
},
{
href: '/blocked_access_logs/blocked_access_logs-list',
label: 'Blocked access logs',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAlertOctagonOutline' in icon ? icon['mdiAlertOctagonOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_BLOCKED_ACCESS_LOGS'
},
{
href: '/unlock_challenges/unlock_challenges-list',
label: 'Unlock challenges',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiLockQuestion' in icon ? icon['mdiLockQuestion' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_UNLOCK_CHALLENGES'
},
{
href: '/temporary_unlocks/temporary_unlocks-list',
label: 'Temporary unlocks',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiLockOpenOutline' in icon ? icon['mdiLockOpenOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TEMPORARY_UNLOCKS'
},
{
href: '/weekly_time_goals/weekly_time_goals-list',
label: 'Weekly time goals',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiTarget' in icon ? icon['mdiTarget' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_WEEKLY_TIME_GOALS'
},
{
href: '/study_time_logs/study_time_logs-list',
label: 'Study time logs',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiChartTimelineVariant' in icon ? icon['mdiChartTimelineVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_STUDY_TIME_LOGS'
},
{
href: '/user_settings/user_settings-list',
label: 'User settings',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiCogOutline' in icon ? icon['mdiCogOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_USER_SETTINGS'
},
{
href: '/notifications/notifications-list',
label: 'Notifications',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiBellOutline' in icon ? icon['mdiBellOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_NOTIFICATIONS'
},
{
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