Files
Picsur/frontend/src/app/routes/settings/settings.routing.module.ts

70 lines
2.0 KiB
TypeScript
Raw Normal View History

2022-03-17 15:35:24 +01:00
import { ModuleWithProviders, NgModule } from '@angular/core';
2022-03-16 17:45:12 +01:00
import { RouterModule } from '@angular/router';
2022-03-17 15:35:24 +01:00
import { Permission } from 'picsur-shared/dist/dto/permissions';
import { PermissionGuard } from 'src/app/guards/permission.guard';
2022-03-16 17:45:12 +01:00
import { PRoutes } from 'src/app/models/picsur-routes';
2022-03-18 20:45:30 +01:00
import { SidebarResolverService } from 'src/app/services/sidebar-resolver/sidebar-resolver.service';
import { SettingsGeneralRouteModule } from './settings-general/settings-general.module';
2022-03-16 17:45:12 +01:00
import { SettingsSidebarComponent } from './settings-sidebar/settings-sidebar.component';
2022-03-18 20:45:30 +01:00
import { SettingsSysprefRouteModule } from './settings-syspref/settings-syspref.module';
2022-03-16 17:45:12 +01:00
2022-03-16 22:27:03 +01:00
const SettingsRoutes: PRoutes = [
2022-03-16 17:45:12 +01:00
{
2022-03-16 22:27:03 +01:00
path: '',
2022-03-18 20:45:30 +01:00
children: [
{
path: '',
redirectTo: 'general',
},
{
path: 'general',
loadChildren: () => SettingsGeneralRouteModule,
data: {
permissions: [Permission.Settings],
page: {
title: 'General',
icon: 'settings',
category: 'personal',
},
},
},
{
2022-03-18 20:52:03 +01:00
path: 'syspref',
2022-03-18 20:45:30 +01:00
loadChildren: () => SettingsSysprefRouteModule,
data: {
permissions: [Permission.SysPrefManage],
page: {
title: 'Sys Preferences',
icon: 'settings',
category: 'system',
},
},
},
],
2022-03-17 15:35:24 +01:00
canActivate: [PermissionGuard],
2022-03-18 20:45:30 +01:00
canActivateChild: [PermissionGuard],
2022-03-16 17:45:12 +01:00
data: {
2022-03-18 20:45:30 +01:00
sidebar: SettingsSidebarComponent,
2022-03-16 17:45:12 +01:00
},
2022-03-18 20:45:30 +01:00
resolve: SidebarResolverService.build(),
2022-03-17 15:35:24 +01:00
},
2022-03-16 17:45:12 +01:00
];
@NgModule({
2022-03-16 22:27:03 +01:00
imports: [RouterModule.forChild(SettingsRoutes)],
2022-03-16 17:45:12 +01:00
exports: [RouterModule],
})
2022-03-17 15:35:24 +01:00
export class SettingsRoutingModule {
static forRoot(): ModuleWithProviders<SettingsRoutingModule> {
return {
ngModule: SettingsRoutingModule,
providers: [
{
provide: 'SettingsRoutes',
2022-03-18 20:45:30 +01:00
useFactory: () => SettingsRoutes[0].children,
2022-03-17 15:35:24 +01:00
},
],
};
}
}