39651-vm/frontend/src/menuAside.ts
2026-04-15 15:06:49 +00:00

153 lines
4.9 KiB
TypeScript

import * as icon from '@mdi/js';
import { MenuAsideItem } from './interfaces'
const menuAside: MenuAsideItem[] = [
{
href: '/dashboard',
icon: icon.mdiViewDashboardOutline,
label: 'Dashboard',
},
{
href: '/watch-hub',
icon: icon.mdiPlayCircle,
label: 'Watch Hub',
},
{
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: '/titles/titles-list',
label: 'Titles',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiMovieOpen' in icon ? icon['mdiMovieOpen' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TITLES'
},
{
href: '/genres/genres-list',
label: 'Genres',
// 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_GENRES'
},
{
href: '/title_genres/title_genres-list',
label: 'Title genres',
// 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_TITLE_GENRES'
},
{
href: '/people/people-list',
label: 'People',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAccountBox' in icon ? icon['mdiAccountBox' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_PEOPLE'
},
{
href: '/title_cast/title_cast-list',
label: 'Title cast',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAccountGroup' in icon ? icon['mdiAccountGroup' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TITLE_CAST'
},
{
href: '/title_crew/title_crew-list',
label: 'Title crew',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiClipboardAccount' in icon ? icon['mdiClipboardAccount' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TITLE_CREW'
},
{
href: '/videos/videos-list',
label: 'Videos',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiPlayCircle' in icon ? icon['mdiPlayCircle' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_VIDEOS'
},
{
href: '/watchlists/watchlists-list',
label: 'Watchlists',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiPlaylistStar' in icon ? icon['mdiPlaylistStar' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_WATCHLISTS'
},
{
href: '/watchlist_items/watchlist_items-list',
label: 'Watchlist items',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiPlaylistCheck' in icon ? icon['mdiPlaylistCheck' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_WATCHLIST_ITEMS'
},
{
href: '/user_ratings/user_ratings-list',
label: 'User ratings',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiStarCircle' in icon ? icon['mdiStarCircle' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_USER_RATINGS'
},
{
href: '/recommendations/recommendations-list',
label: 'Recommendations',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiLightbulbOnOutline' in icon ? icon['mdiLightbulbOnOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_RECOMMENDATIONS'
},
{
href: '/trending_entries/trending_entries-list',
label: 'Trending entries',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiTrendingUp' in icon ? icon['mdiTrendingUp' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_TRENDING_ENTRIES'
},
{
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