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",