mirror of https://github.com/abpframework/abp.git
2 changed files with 43 additions and 0 deletions
@ -0,0 +1 @@ |
|||
export * from './route.provider'; |
|||
@ -0,0 +1,42 @@ |
|||
import { eLayoutType, RoutesService, SettingTabsService } from '@abp/ng.core'; |
|||
import { eThemeSharedRouteNames } from '@abp/ng.theme.shared'; |
|||
import { APP_INITIALIZER } from '@angular/core'; |
|||
import { debounceTime, map } from 'rxjs/operators'; |
|||
import { eSettingManagementRouteNames } from '../enums/route-names'; |
|||
|
|||
export const SETTING_MANAGEMENT_ROUTE_PROVIDERS = [ |
|||
{ provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true }, |
|||
{ |
|||
provide: APP_INITIALIZER, |
|||
useFactory: hideRoutes, |
|||
deps: [RoutesService, SettingTabsService], |
|||
multi: true, |
|||
}, |
|||
]; |
|||
|
|||
export function configureRoutes(routes: RoutesService) { |
|||
return () => { |
|||
routes.add([ |
|||
{ |
|||
name: eSettingManagementRouteNames.Settings, |
|||
path: '/setting-management', |
|||
parentName: eThemeSharedRouteNames.Administration, |
|||
requiredPolicy: 'AbpAccount.SettingManagement', |
|||
layout: eLayoutType.application, |
|||
order: 6, |
|||
iconClass: 'fa fa-cog', |
|||
}, |
|||
]); |
|||
}; |
|||
} |
|||
|
|||
export function hideRoutes(routes: RoutesService, tabs: SettingTabsService) { |
|||
return () => { |
|||
tabs.visible$ |
|||
.pipe( |
|||
debounceTime(0), |
|||
map(nodes => !nodes.length), |
|||
) |
|||
.subscribe(invisible => routes.patch('AbpSettingManagement::Settings', { invisible })); |
|||
}; |
|||
} |
|||
Loading…
Reference in new issue