Merge pull request #9018 from ArtemDzhereleiko/AD/imp/notification-tabs

Refactoring User notification settings
This commit is contained in:
Vladyslav 2023-08-01 12:04:07 +03:00 committed by GitHub
commit 857f69d7d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 9 additions and 156 deletions

View File

@ -136,42 +136,6 @@ export class MenuService {
}
]
},
{
id: 'account',
name: 'profile.profile',
type: 'link',
path: '/account',
disabled: true,
icon: 'mdi:message-badge',
isMdiIcon: true,
pages: [
{
id: 'personal_info',
name: 'account.personal-info',
fullName: 'account.personal-info',
type: 'link',
path: '/account/profile',
icon: 'mdi:badge-account-horizontal',
isMdiIcon: true
},
{
id: 'security',
name: 'security.security',
fullName: 'security.security',
type: 'link',
path: '/account/security',
icon: 'lock'
},
{
id: 'notificationSettings',
name: 'account.notification-settings',
fullName: 'account.notification-settings',
type: 'link',
path: '/account/notificationSettings',
icon: 'settings'
}
]
},
{
id: 'notifications_center',
name: 'notification.notification-center',
@ -540,42 +504,6 @@ export class MenuService {
}
]
},
{
id: 'account',
name: 'profile.profile',
type: 'link',
path: '/account',
disabled: true,
icon: 'mdi:message-badge',
isMdiIcon: true,
pages: [
{
id: 'personal_info',
name: 'account.personal-info',
fullName: 'account.personal-info',
type: 'link',
path: '/account/profile',
icon: 'mdi:badge-account-horizontal',
isMdiIcon: true
},
{
id: 'security',
name: 'security.security',
fullName: 'security.security',
type: 'link',
path: '/account/security',
icon: 'lock'
},
{
id: 'notificationSettings',
name: 'account.notification-settings',
fullName: 'account.notification-settings',
type: 'link',
path: '/account/notificationSettings',
icon: 'settings'
}
]
},
{
id: 'notifications_center',
name: 'notification.notification-center',
@ -904,34 +832,6 @@ export class MenuService {
icon: 'view_quilt'
}
]
},
{
id: 'account',
name: 'profile.profile',
type: 'link',
path: '/account',
disabled: true,
icon: 'mdi:message-badge',
isMdiIcon: true,
pages: [
{
id: 'personal_info',
name: 'account.personal-info',
fullName: 'account.personal-info',
type: 'link',
path: '/account/profile',
icon: 'mdi:badge-account-horizontal',
isMdiIcon: true
},
{
id: 'security',
name: 'security.security',
fullName: 'security.security',
type: 'link',
path: '/account/security',
icon: 'lock'
}
]
}
);
if (authState.edgesSupportEnabled) {

View File

@ -17,8 +17,6 @@
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { MenuService } from '@core/services/menu.service';
import { MenuSection } from '@core/services/menu.models';
import { Observable, of } from 'rxjs';
import { mergeMap, share } from 'rxjs/operators';
@Component({
selector: 'tb-side-menu',
@ -28,23 +26,15 @@ import { mergeMap, share } from 'rxjs/operators';
})
export class SideMenuComponent implements OnInit {
menuSections$: Observable<Array<MenuSection>>;
menuSections$ = this.menuService.menuSections();
constructor(private menuService: MenuService) {
this.menuSections$ = this.menuService.menuSections().pipe(
mergeMap((sections) => this.filterSections(sections)),
share()
);
}
trackByMenuSection(index: number, section: MenuSection){
return section.id;
}
private filterSections(sections: Array<MenuSection>): Observable<Array<MenuSection>> {
return of(sections.filter(section => !section.disabled));
}
ngOnInit() {
}

View File

@ -24,7 +24,7 @@ import { getCurrentAuthState } from '@core/auth/auth.selectors';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import {
NotificationUserSettingsRoutes
notificationUserSettingsRoutes
} from '@home/pages/notification/settings/notification-settings-routing.modules';
const routes: Routes = [
@ -53,7 +53,7 @@ const routes: Routes = [
},
...profileRoutes,
...securityRoutes,
...NotificationUserSettingsRoutes
...notificationUserSettingsRoutes
]
}
];

View File

@ -36,9 +36,6 @@ import { EscalationsComponent } from '@home/pages/notification/rule/escalations.
import { RuleNotificationDialogComponent } from '@home/pages/notification/rule/rule-notification-dialog.component';
import { RuleTableHeaderComponent } from '@home/pages/notification/rule/rule-table-header.component';
import { NotificationSettingsComponent } from '@home/pages/notification/settings/notification-settings.component';
import {
NotificationSettingsRoutingModules
} from '@home/pages/notification/settings/notification-settings-routing.modules';
import {
NotificationSettingFormComponent
} from '@home/pages/notification/settings/notification-setting-form.component';
@ -64,7 +61,6 @@ import {
CommonModule,
SharedModule,
NotificationRoutingModule,
NotificationSettingsRoutingModules,
HomeComponentsModule
]
})

View File

@ -14,29 +14,14 @@
/// limitations under the License.
///
import { Resolve, RouterModule, Routes } from '@angular/router';
import { Routes } from '@angular/router';
import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard';
import { Authority } from '@shared/models/authority.enum';
import { Injectable, NgModule } from '@angular/core';
import { inject, NgModule } from '@angular/core';
import { NotificationSettingsComponent } from '@home/pages/notification/settings/notification-settings.component';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { Observable } from 'rxjs';
import { NotificationService } from '@core/http/notification.service';
@Injectable()
export class NotificationUserSettingsResolver implements Resolve<any> {
constructor(private store: Store<AppState>,
private notificationService: NotificationService) {
}
resolve(): Observable<any> {
return this.notificationService.getNotificationUserSettings();
}
}
export const NotificationUserSettingsRoutes: Routes = [
export const notificationUserSettingsRoutes: Routes = [
{
path: 'notificationSettings',
component: NotificationSettingsComponent,
@ -50,21 +35,7 @@ export const NotificationUserSettingsRoutes: Routes = [
}
},
resolve: {
userSettings: NotificationUserSettingsResolver
userSettings: () => inject(NotificationService).getNotificationUserSettings()
}
}
];
const routes: Routes = [
{
path: 'notificationSettings',
redirectTo: '/account/notificationSettings'
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
providers: [NotificationUserSettingsResolver]
})
export class NotificationSettingsRoutingModules { }

View File

@ -11,7 +11,8 @@
"permission-denied-text": "You don't have permission to perform this operation!"
},
"account": {
"account": "Account"
"account": "Account",
"notification-settings": "Notification settings"
},
"action": {
"activate": "Activate",
@ -3221,11 +3222,6 @@
"profiles": {
"profiles": "Profiles"
},
"account": {
"account": "Account",
"personal-info": "Personal info",
"notification-settings": "Notification settings"
},
"security": {
"security": "Security",
"general-settings": "General security settings",