mirror of https://github.com/abpframework/abp.git
7 changed files with 72 additions and 1 deletions
@ -1 +1,2 @@ |
|||
export * from './components'; |
|||
export * from './user-menu-items'; |
|||
|
|||
@ -0,0 +1,4 @@ |
|||
export const enum eUserMenuItems { |
|||
MyAccount = 'UserMenu.MyAccount', |
|||
Logout = 'UserMenu.Logout', |
|||
} |
|||
@ -1,2 +1,3 @@ |
|||
export * from './nav-item.provider'; |
|||
export * from './styles.provider'; |
|||
export * from './user-menu.provider'; |
|||
|
|||
@ -0,0 +1,59 @@ |
|||
import { |
|||
AuthService, |
|||
ConfigStateService, |
|||
LocalizationService, |
|||
NAVIGATE_TO_MANAGE_PROFILE, |
|||
} from '@abp/ng.core'; |
|||
import { UserMenuService } from '@abp/ng.theme.shared'; |
|||
import { APP_INITIALIZER, Injector } from '@angular/core'; |
|||
import { filter } from 'rxjs/operators'; |
|||
import { eUserMenuItems } from '../enums/user-menu-items'; |
|||
|
|||
export const BASIC_THEME_USER_MENU_PROVIDERS = [ |
|||
{ |
|||
provide: APP_INITIALIZER, |
|||
useFactory: configureUserMenu, |
|||
deps: [Injector], |
|||
multi: true, |
|||
}, |
|||
]; |
|||
|
|||
export function configureUserMenu(injector: Injector) { |
|||
const configState = injector.get(ConfigStateService); |
|||
const userMenu = injector.get(UserMenuService); |
|||
const localization = injector.get(LocalizationService); |
|||
const authService = injector.get(AuthService); |
|||
const navigateToManageProfile = injector.get(NAVIGATE_TO_MANAGE_PROFILE); |
|||
|
|||
return () => { |
|||
configState |
|||
.getAll$() |
|||
.pipe(filter(res => !!res?.localization)) |
|||
.subscribe(() => { |
|||
userMenu.addItems([ |
|||
{ |
|||
id: eUserMenuItems.MyAccount, |
|||
order: 100, |
|||
html: ` |
|||
<a class="dropdown-item pointer" |
|||
><i class="fa fa-cog me-1"></i>${localization.instant('AbpAccount::MyAccount')}</a |
|||
> |
|||
`,
|
|||
action: () => navigateToManageProfile(), |
|||
}, |
|||
{ |
|||
id: eUserMenuItems.Logout, |
|||
order: 101, |
|||
html: ` |
|||
<a class="dropdown-item" href="javascript:void(0)" |
|||
><i class="fa fa-power-off me-1"></i>${localization.instant('AbpUi::Logout')}</a |
|||
> |
|||
`,
|
|||
action: () => { |
|||
authService.logout().subscribe(); |
|||
}, |
|||
}, |
|||
]); |
|||
}); |
|||
}; |
|||
} |
|||
@ -1,5 +1,6 @@ |
|||
export * from './common'; |
|||
export * from './confirmation'; |
|||
export * from './nav-item'; |
|||
export * from './statistics'; |
|||
export * from './toaster'; |
|||
export * from './nav-item'; |
|||
export * from './user-menu'; |
|||
|
|||
@ -0,0 +1,3 @@ |
|||
import { NavItem } from './nav-item'; |
|||
|
|||
export class UserMenu extends NavItem {} |
|||
Loading…
Reference in new issue