import { Component, Input, } from '@angular/core'; import { Router } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; import { ViewMode } from '../../../core/shared/view-mode.model'; import { NotificationBoxComponent } from '../../../shared/notification-box/notification-box.component'; import { AdminNotifyMetricsRow } from './admin-notify-metrics.model'; @Component({ selector: 'ds-admin-notify-metrics', templateUrl: './admin-notify-metrics.component.html', standalone: true, imports: [ NotificationBoxComponent, TranslateModule, ], }) /** * Component used to display the number of notification for each configured box in the notifyMetrics section */ export class AdminNotifyMetricsComponent { @Input() boxesConfig: AdminNotifyMetricsRow[]; private incomingConfiguration = 'NOTIFY.incoming'; private involvedItemsSuffix = 'involvedItems'; private inboundPath = '/inbound'; private outboundPath = '/outbound'; private adminSearchPath = '/admin/search'; constructor(private router: Router) { } public navigateToSelectedSearchConfig(searchConfig: string) { const isRelatedItemsConfig = searchConfig.endsWith(this.involvedItemsSuffix); if (isRelatedItemsConfig) { this.router.navigate([this.adminSearchPath], { queryParams: { configuration: searchConfig, view: ViewMode.ListElement, }, }); return; } const isIncomingConfig = searchConfig.startsWith(this.incomingConfiguration); const selectedPath = isIncomingConfig ? this.inboundPath : this.outboundPath; this.router.navigate([`${this.router.url}${selectedPath}`], { queryParams: { configuration: searchConfig, view: ViewMode.Table, }, }); } }