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

96 lines
2.7 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';
2022-03-21 22:58:16 +01:00
import { SettingsGeneralRouteModule } from './general/settings-general.module';
2022-03-23 23:21:29 +01:00
import { SettingsRolesRouteModule } from './roles/settings-roles.module';
2022-03-21 22:58:16 +01:00
import { SettingsSidebarComponent } from './sidebar/settings-sidebar.component';
import { SettingsSysprefRouteModule } from './syspref/settings-syspref.module';
import { SettingsUsersRouteModule } from './users/settings-users.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-19 22:04:55 +01:00
path: 'users',
loadChildren: () => SettingsUsersRouteModule,
2022-03-18 20:45:30 +01:00
data: {
2022-03-19 22:04:55 +01:00
permissions: [Permission.UserManage],
2022-03-18 20:45:30 +01:00
page: {
2022-03-19 22:04:55 +01:00
title: 'Users',
2022-03-23 23:21:29 +01:00
icon: 'people_outline',
category: 'system',
},
},
},
{
path: 'roles',
loadChildren: () => SettingsRolesRouteModule,
data: {
permissions: [Permission.RoleManage],
page: {
title: 'Roles',
icon: 'admin_panel_settings',
2022-03-18 20:45:30 +01:00
category: 'system',
},
},
},
2022-03-19 21:34:33 +01:00
{
2022-03-19 22:04:55 +01:00
path: 'system',
loadChildren: () => SettingsSysprefRouteModule,
2022-03-19 21:34:33 +01:00
data: {
2022-03-19 22:04:55 +01:00
permissions: [Permission.SysPrefManage],
2022-03-19 21:34:33 +01:00
page: {
2022-03-19 22:04:55 +01:00
title: 'System Settings',
icon: 'tune',
2022-03-19 21:34:33 +01:00
category: 'system',
},
},
},
2022-03-18 20:45:30 +01:00
],
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
},
],
};
}
}