From 61a05dff13a80c75aeac0efe041e89b4dd44e3f3 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Fri, 12 Jan 2024 18:06:09 +0100 Subject: [PATCH 1/3] add navigation with new config, add custom filter --- .../admin-notify-incoming.component.html | 13 ++++++- .../admin-notify-incoming.component.ts | 33 +++++++++++++++- .../admin-notify-outgoing.component.html | 9 ++++- .../admin-notify-outgoing.component.ts | 38 ++++++++++++++++++- .../admin-notify-metrics.component.ts | 24 ++++++++++-- .../notification-box.component.html | 7 +++- .../notification-box.component.scss | 1 + src/assets/i18n/en.json5 | 2 + 8 files changed, 116 insertions(+), 11 deletions(-) diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html index 4b72854bc0..a71072149e 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html @@ -17,14 +17,23 @@
-
{{'admin.notify.dashboard.inbound' | translate}}
+
{{'admin.notify.dashboard.outbound' | translate}}
+
+ +
+ + ; public defaultConfiguration = 'NOTIFY.incoming'; + public isLoading = true; + + protected readonly context = Context.CoarNotify; - constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService) { + constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, + private router: Router, + private route: ActivatedRoute) { } ngOnInit() { - this.searchConfigService.getCurrentConfiguration('').subscribe(x => console.log(x)); + this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration).pipe( + tap(() => this.isLoading = false) + ) } + public resetDefaultConfiguration() { + this.router.navigate([this.getResolvedUrl(this.route.snapshot)], { + queryParams: { + configuration: this.defaultConfiguration, + view: ViewMode.Table + }, + }) + } + + /** + * + * @param route url path + * @returns url path + */ + private getResolvedUrl(route: ActivatedRouteSnapshot): string { + return route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'); + } } diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html index a0f298371e..7621f3369a 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html @@ -20,13 +20,20 @@
{{'admin.notify.dashboard.outbound' | translate}}
+
+ +
; + public defaultConfiguration = 'NOTIFY.outgoing'; + public isLoading = true; - constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService) { + + protected readonly context = Context.CoarNotify; + constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, + private router: Router, + private route: ActivatedRoute) { + } + + ngOnInit() { + this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration).pipe( + tap(() => this.isLoading = false) + ) + } + + public resetDefaultConfiguration() { + this.router.navigate([this.getResolvedUrl(this.route.snapshot)], { + queryParams: { + configuration: this.defaultConfiguration, + view: ViewMode.Table + }, + }) + } + + /** + * + * @param route url path + * @returns url path + */ + private getResolvedUrl(route: ActivatedRouteSnapshot): string { + return route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'); } } diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts index a1f7cdbaf1..09ce0fb3f9 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts @@ -1,5 +1,7 @@ -import { Component, Input } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; import { AdminNotifyMetricsRow } from './admin-notify-metrics.model'; +import { ActivatedRoute, Router } from "@angular/router"; +import { ViewMode } from "../../../core/shared/view-mode.model"; @Component({ selector: 'ds-admin-notify-metrics', @@ -10,7 +12,23 @@ export class AdminNotifyMetricsComponent { @Input() boxesConfig: AdminNotifyMetricsRow[]; - public navigateToSelectedSearchConfig($event: string) { - console.log($event); + private incomingConfiguration = 'NOTIFY.incoming'; + private inboundPath = '/inbound'; + private outboundPath = '/outbound'; + + constructor(private router: Router) { + } + + + public navigateToSelectedSearchConfig(searchConfig: string) { + 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 + }, + }) } } diff --git a/src/app/shared/notification-box/notification-box.component.html b/src/app/shared/notification-box/notification-box.component.html index c5368137a7..2323bd630a 100644 --- a/src/app/shared/notification-box/notification-box.component.html +++ b/src/app/shared/notification-box/notification-box.component.html @@ -1,4 +1,9 @@ -
+
{{ boxConfig.count ?? 0 }}
{{ boxConfig.title | translate }}
diff --git a/src/app/shared/notification-box/notification-box.component.scss b/src/app/shared/notification-box/notification-box.component.scss index 9813f4aa7a..3bc1d23248 100644 --- a/src/app/shared/notification-box/notification-box.component.scss +++ b/src/app/shared/notification-box/notification-box.component.scss @@ -1,6 +1,7 @@ .box-container { min-width: max-content; } + .box-counter { font-size: calc(var(--bs-font-size-lg) * 1.5); } diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 48fe27212c..9244da53db 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -3469,6 +3469,8 @@ "admin.notify.dashboard.inbound-logs": "Logs/Inbound", + "admin.notify.dashboard.configuration": "Configuration: ", + "admin.notify.dashboard.outbound": "Outbound messages", "admin.notify.dashboard.outbound-logs": "Logs/Outbound", From 93777b9d61a8072d18b31037809d93fac53a977c Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Fri, 12 Jan 2024 18:10:09 +0100 Subject: [PATCH 2/3] fix lint --- .../admin-notify-incoming.component.ts | 12 ++++++------ .../admin-notify-outgoing.component.ts | 12 ++++++------ .../admin-notify-metrics.component.ts | 8 ++++---- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts index 6d4d7a4478..a8d7471bc5 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts @@ -2,10 +2,10 @@ import { Component, Inject, OnInit } from '@angular/core'; import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-page.component'; import { Context } from '../../../../core/shared/context.model'; import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; -import { Observable } from "rxjs"; -import { map, tap } from "rxjs/operators"; -import { ActivatedRoute, ActivatedRouteSnapshot, Router } from "@angular/router"; -import { ViewMode } from "../../../../core/shared/view-mode.model"; +import { Observable } from 'rxjs'; +import { tap } from 'rxjs/operators'; +import { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'; +import { ViewMode } from '../../../../core/shared/view-mode.model'; @Component({ @@ -33,7 +33,7 @@ export class AdminNotifyIncomingComponent implements OnInit{ ngOnInit() { this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration).pipe( tap(() => this.isLoading = false) - ) + ); } public resetDefaultConfiguration() { @@ -42,7 +42,7 @@ export class AdminNotifyIncomingComponent implements OnInit{ configuration: this.defaultConfiguration, view: ViewMode.Table }, - }) + }); } /** diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts index 881ed5b33c..71e3052e86 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts @@ -2,10 +2,10 @@ import { Component, Inject } from '@angular/core'; import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-page.component'; import { Context } from '../../../../core/shared/context.model'; import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; -import { Observable } from "rxjs"; -import { ActivatedRoute, ActivatedRouteSnapshot, Router } from "@angular/router"; -import { ViewMode } from "../../../../core/shared/view-mode.model"; -import { tap } from "rxjs/operators"; +import { Observable } from 'rxjs'; +import { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'; +import { ViewMode } from '../../../../core/shared/view-mode.model'; +import { tap } from 'rxjs/operators'; @Component({ @@ -33,7 +33,7 @@ export class AdminNotifyOutgoingComponent { ngOnInit() { this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration).pipe( tap(() => this.isLoading = false) - ) + ); } public resetDefaultConfiguration() { @@ -42,7 +42,7 @@ export class AdminNotifyOutgoingComponent { configuration: this.defaultConfiguration, view: ViewMode.Table }, - }) + }); } /** diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts index 09ce0fb3f9..5960c0ad3a 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts @@ -1,7 +1,7 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input } from '@angular/core'; import { AdminNotifyMetricsRow } from './admin-notify-metrics.model'; -import { ActivatedRoute, Router } from "@angular/router"; -import { ViewMode } from "../../../core/shared/view-mode.model"; +import { Router } from '@angular/router'; +import { ViewMode } from '../../../core/shared/view-mode.model'; @Component({ selector: 'ds-admin-notify-metrics', @@ -29,6 +29,6 @@ export class AdminNotifyMetricsComponent { configuration: searchConfig, view: ViewMode.Table }, - }) + }); } } From f4c2b0b3fdd989c1c33eb778ebe1a6d7ecedae8f Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Mon, 15 Jan 2024 11:31:32 +0100 Subject: [PATCH 3/3] implement items clickable, fix minor issues, add filters --- .../admin-notify-dashboard.module.ts | 5 +- .../admin-notify-incoming.component.html | 24 +------- .../admin-notify-incoming.component.ts | 43 +------------- .../admin-notify-logs-result.component.html | 25 ++++++++ ...admin-notify-logs-result.component.spec.ts | 23 ++++++++ .../admin-notify-logs-result.component.ts | 58 +++++++++++++++++++ .../admin-notify-outgoing.component.html | 23 +------- .../admin-notify-outgoing.component.ts | 39 +------------ .../admin-notify-metrics.component.ts | 15 +++++ .../admin-notify-search-result.component.ts | 32 ++++++---- .../models/admin-notify-message.model.ts | 12 ++++ src/assets/i18n/en.json5 | 2 + 12 files changed, 166 insertions(+), 135 deletions(-) create mode 100644 src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.html create mode 100644 src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts create mode 100644 src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts index c75ab053c7..ad9d30dab9 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts @@ -16,6 +16,7 @@ import { AdminNotifySearchResultComponent } from './admin-notify-search-result/admin-notify-search-result.component'; import { AdminNotifyMessagesService } from './services/admin-notify-messages.service'; +import { AdminNotifyLogsResultComponent } from './admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component'; const ENTRY_COMPONENTS = [ @@ -40,7 +41,9 @@ const ENTRY_COMPONENTS = [ AdminNotifyMetricsComponent, AdminNotifyIncomingComponent, AdminNotifyOutgoingComponent, - AdminNotifyDetailModalComponent + AdminNotifyDetailModalComponent, + AdminNotifySearchResultComponent, + AdminNotifyLogsResultComponent ] }) export class AdminNotifyDashboardModule { diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html index a71072149e..fbd7b8b5d0 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.html @@ -15,29 +15,7 @@ {{'admin.notify.dashboard.outbound-logs' | translate}} -
-
-
{{'admin.notify.dashboard.outbound' | translate}}
-
- -
- -
-
-
-
- - - +
diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts index a8d7471bc5..b259d9a13c 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.ts @@ -1,11 +1,6 @@ -import { Component, Inject, OnInit } from '@angular/core'; +import { Component, Inject } from '@angular/core'; import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-page.component'; -import { Context } from '../../../../core/shared/context.model'; import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; -import { Observable } from 'rxjs'; -import { tap } from 'rxjs/operators'; -import { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; @Component({ @@ -18,39 +13,7 @@ import { ViewMode } from '../../../../core/shared/view-mode.model'; } ] }) -export class AdminNotifyIncomingComponent implements OnInit{ - public selectedSearchConfig$: Observable; - public defaultConfiguration = 'NOTIFY.incoming'; - public isLoading = true; - - - protected readonly context = Context.CoarNotify; - constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, - private router: Router, - private route: ActivatedRoute) { - } - - ngOnInit() { - this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration).pipe( - tap(() => this.isLoading = false) - ); - } - - public resetDefaultConfiguration() { - this.router.navigate([this.getResolvedUrl(this.route.snapshot)], { - queryParams: { - configuration: this.defaultConfiguration, - view: ViewMode.Table - }, - }); - } - - /** - * - * @param route url path - * @returns url path - */ - private getResolvedUrl(route: ActivatedRouteSnapshot): string { - return route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'); +export class AdminNotifyIncomingComponent { + constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService) { } } diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.html new file mode 100644 index 0000000000..325dae72c7 --- /dev/null +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.html @@ -0,0 +1,25 @@ +
+
+
{{'admin.notify.dashboard.outbound' | translate}}
+
+ +
+ +
+
+
+
+ + +
+ +
+ diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts new file mode 100644 index 0000000000..4359bd3cf9 --- /dev/null +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminNotifyLogsResultComponent } from './admin-notify-logs-result.component'; + +describe('AdminNotifyLogsComponent', () => { + let component: AdminNotifyLogsResultComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AdminNotifyLogsResultComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AdminNotifyLogsResultComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts new file mode 100644 index 0000000000..a5dc37289a --- /dev/null +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts @@ -0,0 +1,58 @@ +import { Component, Inject, Input, OnInit } from '@angular/core'; +import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-page.component'; +import { Context } from '../../../../core/shared/context.model'; +import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; +import { Observable } from 'rxjs'; +import { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'; +import { ViewMode } from '../../../../core/shared/view-mode.model'; + +@Component({ + selector: 'ds-admin-notify-logs-result', + templateUrl: './admin-notify-logs-result.component.html', + providers: [ + { + provide: SEARCH_CONFIG_SERVICE, + useClass: SearchConfigurationService + } + ] +}) +export class AdminNotifyLogsResultComponent implements OnInit{ + + @Input() + defaultConfiguration: string; + + public selectedSearchConfig$: Observable; + + protected readonly context = Context.CoarNotify; + constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, + private router: Router, + private route: ActivatedRoute) { + } + + ngOnInit() { + // override the route reuse strategy to prevent issue on result loading + this.router.routeReuseStrategy.shouldReuseRoute = () => { + return false; + }; + + this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration); + } + + public resetDefaultConfiguration() { + this.router.navigate([this.getResolvedUrl(this.route.snapshot)], { + queryParams: { + configuration: this.defaultConfiguration, + view: ViewMode.Table, + }, + }); + } + + /** + * + * @param route url path + * @returns url path + */ + private getResolvedUrl(route: ActivatedRouteSnapshot): string { + return route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'); + } +} diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html index 7621f3369a..cb58050229 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.html @@ -15,29 +15,8 @@ {{'admin.notify.dashboard.outbound-logs' | translate}} -
-
-
{{'admin.notify.dashboard.outbound' | translate}}
-
- -
- -
-
-
-
+ - - diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts index 71e3052e86..a37ddc3bd6 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.ts @@ -1,11 +1,6 @@ import { Component, Inject } from '@angular/core'; import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-page.component'; -import { Context } from '../../../../core/shared/context.model'; import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; -import { Observable } from 'rxjs'; -import { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'; -import { ViewMode } from '../../../../core/shared/view-mode.model'; -import { tap } from 'rxjs/operators'; @Component({ @@ -19,38 +14,6 @@ import { tap } from 'rxjs/operators'; ] }) export class AdminNotifyOutgoingComponent { - public selectedSearchConfig$: Observable; - public defaultConfiguration = 'NOTIFY.outgoing'; - public isLoading = true; - - - protected readonly context = Context.CoarNotify; - constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, - private router: Router, - private route: ActivatedRoute) { - } - - ngOnInit() { - this.selectedSearchConfig$ = this.searchConfigService.getCurrentConfiguration(this.defaultConfiguration).pipe( - tap(() => this.isLoading = false) - ); - } - - public resetDefaultConfiguration() { - this.router.navigate([this.getResolvedUrl(this.route.snapshot)], { - queryParams: { - configuration: this.defaultConfiguration, - view: ViewMode.Table - }, - }); - } - - /** - * - * @param route url path - * @returns url path - */ - private getResolvedUrl(route: ActivatedRouteSnapshot): string { - return route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'); + constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService) { } } diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts index 5960c0ad3a..c7aebc0ea8 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts @@ -13,14 +13,29 @@ export class AdminNotifyMetricsComponent { 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; diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.ts index 59fb4ca4e0..d249e58dc0 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.ts @@ -50,6 +50,26 @@ export class AdminNotifySearchResultComponent extends TabulatableResultListEleme private dateTypeKeys: string[] = ['queueLastStartTime', 'queueTimeout']; + /** + * Keys to be not shown in detail + * @private + */ + + private hiddenKeys: string[] = [ + 'target', + 'object', + 'context', + 'origin', + '_links', + 'metadata', + 'thumbnail', + 'item', + 'accessStatus', + 'queueStatus', + 'notificationId', + 'notificationType', + ]; + /** * The format for the date values * @private @@ -87,18 +107,8 @@ export class AdminNotifySearchResultComponent extends TabulatableResultListEleme const modalRef = this.modalService.open(AdminNotifyDetailModalComponent); const messageToOpen = {...message}; // we delete not necessary or not readable keys - delete messageToOpen.target; - delete messageToOpen.object; - delete messageToOpen.context; - delete messageToOpen.origin; - delete messageToOpen._links; - delete messageToOpen.metadata; - delete messageToOpen.thumbnail; - delete messageToOpen.item; - delete messageToOpen.accessStatus; - delete messageToOpen.queueStatus; - const messageKeys = Object.keys(messageToOpen); + const messageKeys = Object.keys(messageToOpen).filter(key => !this.hiddenKeys.includes(key)); messageKeys.forEach(key => { if (this.dateTypeKeys.includes(key)) { messageToOpen[key] = this.datePipe.transform(messageToOpen[key], this.dateFormat); diff --git a/src/app/admin/admin-notify-dashboard/models/admin-notify-message.model.ts b/src/app/admin/admin-notify-dashboard/models/admin-notify-message.model.ts index 72fe58eacb..07fd66ba67 100644 --- a/src/app/admin/admin-notify-dashboard/models/admin-notify-message.model.ts +++ b/src/app/admin/admin-notify-dashboard/models/admin-notify-message.model.ts @@ -26,6 +26,18 @@ export class AdminNotifyMessage extends DSpaceObject { @autoserialize id: string; + /** + * The id of the notification + */ + @autoserialize + notificationId: string; + + /** + * The type of the notification + */ + @autoserialize + notificationType: string; + /** * The type of the notification */ diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 9244da53db..1bc95b467b 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -3471,6 +3471,8 @@ "admin.notify.dashboard.configuration": "Configuration: ", + "search.filters.applied.f.relateditem": "Related items", + "admin.notify.dashboard.outbound": "Outbound messages", "admin.notify.dashboard.outbound-logs": "Logs/Outbound",