215 lines
7.6 KiB
TypeScript
215 lines
7.6 KiB
TypeScript
import * as icon from '@mdi/js';
|
|
import { MenuAsideItem } from './interfaces'
|
|
|
|
const menuAside: MenuAsideItem[] = [
|
|
{
|
|
href: '/dashboard',
|
|
icon: icon.mdiViewDashboardOutline,
|
|
label: 'Dashboard',
|
|
},
|
|
{
|
|
href: '/browse-sources',
|
|
icon: icon.mdiSourceBranch,
|
|
label: 'Browse Extensions',
|
|
},
|
|
{
|
|
href: '/library_entries/library_entries-list',
|
|
label: 'My Library',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiLibraryShelves' in icon ? icon['mdiLibraryShelves' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_LIBRARY_ENTRIES'
|
|
},
|
|
{
|
|
href: '/series/series-list',
|
|
label: 'Local Series',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiBookOpenPageVariant' in icon ? icon['mdiBookOpenPageVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_SERIES'
|
|
},
|
|
{
|
|
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: '/sources/sources-list',
|
|
label: 'Sources Admin',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiSourceRepository' in icon ? icon['mdiSourceRepository' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_SOURCES'
|
|
},
|
|
{
|
|
href: '/extensions/extensions-list',
|
|
label: 'Extensions Admin',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiPuzzle' in icon ? icon['mdiPuzzle' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_EXTENSIONS'
|
|
},
|
|
{
|
|
href: '/chapters/chapters-list',
|
|
label: 'Chapters',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiFileDocumentMultiple' in icon ? icon['mdiFileDocumentMultiple' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_CHAPTERS'
|
|
},
|
|
{
|
|
href: '/chapter_pages/chapter_pages-list',
|
|
label: 'Chapter pages',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiImageMultiple' in icon ? icon['mdiImageMultiple' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_CHAPTER_PAGES'
|
|
},
|
|
{
|
|
href: '/categories/categories-list',
|
|
label: 'Categories',
|
|
// 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_CATEGORIES'
|
|
},
|
|
{
|
|
href: '/category_assignments/category_assignments-list',
|
|
label: 'Category assignments',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiPlaylistPlus' in icon ? icon['mdiPlaylistPlus' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_CATEGORY_ASSIGNMENTS'
|
|
},
|
|
{
|
|
href: '/reading_sessions/reading_sessions-list',
|
|
label: 'Reading sessions',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiBookOpenVariant' in icon ? icon['mdiBookOpenVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_READING_SESSIONS'
|
|
},
|
|
{
|
|
href: '/bookmarks/bookmarks-list',
|
|
label: 'Bookmarks',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiBookmarkMultiple' in icon ? icon['mdiBookmarkMultiple' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_BOOKMARKS'
|
|
},
|
|
{
|
|
href: '/downloads/downloads-list',
|
|
label: 'Downloads',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiDownload' in icon ? icon['mdiDownload' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_DOWNLOADS'
|
|
},
|
|
{
|
|
href: '/notification_preferences/notification_preferences-list',
|
|
label: 'Notification preferences',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiBellBadge' in icon ? icon['mdiBellBadge' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_NOTIFICATION_PREFERENCES'
|
|
},
|
|
{
|
|
href: '/update_subscriptions/update_subscriptions-list',
|
|
label: 'Update subscriptions',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiUpdate' in icon ? icon['mdiUpdate' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_UPDATE_SUBSCRIPTIONS'
|
|
},
|
|
{
|
|
href: '/tracker_accounts/tracker_accounts-list',
|
|
label: 'Tracker accounts',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiSync' in icon ? icon['mdiSync' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_TRACKER_ACCOUNTS'
|
|
},
|
|
{
|
|
href: '/tracker_mappings/tracker_mappings-list',
|
|
label: 'Tracker mappings',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiLinkVariant' in icon ? icon['mdiLinkVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_TRACKER_MAPPINGS'
|
|
},
|
|
{
|
|
href: '/user_preferences/user_preferences-list',
|
|
label: 'User preferences',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiTuneVariant' in icon ? icon['mdiTuneVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_USER_PREFERENCES'
|
|
},
|
|
{
|
|
href: '/backups/backups-list',
|
|
label: 'Backups',
|
|
// 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_BACKUPS'
|
|
},
|
|
{
|
|
href: '/feedback_reports/feedback_reports-list',
|
|
label: 'Feedback reports',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiBug' in icon ? icon['mdiBug' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_FEEDBACK_REPORTS'
|
|
},
|
|
{
|
|
href: '/search_history/search_history-list',
|
|
label: 'Search history',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiMagnify' in icon ? icon['mdiMagnify' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_SEARCH_HISTORY'
|
|
},
|
|
{
|
|
href: '/reading_progress/reading_progress-list',
|
|
label: 'Reading progress',
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
icon: 'mdiProgressCheck' in icon ? icon['mdiProgressCheck' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
permissions: 'READ_READING_PROGRESS'
|
|
},
|
|
{
|
|
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 |