40154-vm/frontend/src/menuAside.ts
2026-05-29 09:21:33 +00:00

148 lines
4.8 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: '/organizations/organizations-list',
label: 'Organizations',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_ORGANIZATIONS'
},
{
href: '/labels/labels-list',
label: 'Labels',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiDomain' in icon ? icon['mdiDomain' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_LABELS'
},
{
href: '/artists/artists-list',
label: 'Artists',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiMicrophoneVariant' in icon ? icon['mdiMicrophoneVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_ARTISTS'
},
{
href: '/youtube_uploader/release-console',
label: 'Release Console',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiYoutubeStudio' in icon ? icon['mdiYoutubeStudio' as keyof typeof icon] : icon.mdiYoutube ?? icon.mdiTable,
permissions: 'CREATE_UPLOAD_JOBS'
},
{
href: '/youtube_accounts/youtube_accounts-list',
label: 'Youtube accounts',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiYoutube' in icon ? icon['mdiYoutube' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_YOUTUBE_ACCOUNTS'
},
{
href: '/api_credentials/api_credentials-list',
label: 'Api credentials',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiKeyVariant' in icon ? icon['mdiKeyVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_API_CREDENTIALS'
},
{
href: '/albums/albums-list',
label: 'Albums',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAlbum' in icon ? icon['mdiAlbum' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_ALBUMS'
},
{
href: '/tracks/tracks-list',
label: 'Tracks',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiMusicNote' in icon ? icon['mdiMusicNote' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TRACKS'
},
{
href: '/youtube_video_assets/youtube_video_assets-list',
label: 'Youtube video assets',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiVideo' in icon ? icon['mdiVideo' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_YOUTUBE_VIDEO_ASSETS'
},
{
href: '/upload_jobs/upload_jobs-list',
label: 'Upload jobs',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiCloudUpload' in icon ? icon['mdiCloudUpload' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_UPLOAD_JOBS'
},
{
href: '/upload_job_logs/upload_job_logs-list',
label: 'Upload job logs',
// 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_UPLOAD_JOB_LOGS'
},
{
href: '/release_schedules/release_schedules-list',
label: 'Release schedules',
// 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_RELEASE_SCHEDULES'
},
{
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