diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.html
index 4b432adb38..e366fbc909 100644
--- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.html
+++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.html
@@ -8,7 +8,7 @@
{{'admin-notify-dashboard.metrics' | translate}}
-
+
diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts
index 56f5091969..abaf9f05b5 100644
--- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts
+++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts
@@ -1,47 +1,35 @@
-import { Component, Inject, OnInit } from '@angular/core';
-import { SearchConfigurationService } from "../../core/shared/search/search-configuration.service";
+import { Component, OnInit } from '@angular/core';
import { SearchService } from "../../core/shared/search/search.service";
+import { environment } from "../../../environments/environment";
import { PaginatedSearchOptions } from "../../shared/search/models/paginated-search-options.model";
-import { SEARCH_CONFIG_SERVICE } from "../../my-dspace-page/my-dspace-page.component";
import { PaginationComponentOptions } from "../../shared/pagination/pagination-component-options.model";
-import { SearchFilterConfig } from "../../shared/search/models/search-filter-config.model";
+import { concatAll, concatWith, flatMap, forkJoin, from, mergeAll, switchMap } from "rxjs";
+import { concat, delay } from "rxjs/operators";
+import { getFirstSucceededRemoteData } from "../../core/shared/operators";
@Component({
selector: 'ds-admin-notify-dashboard',
templateUrl: './admin-notify-dashboard.component.html',
styleUrls: ['./admin-notify-dashboard.component.scss'],
- providers: [
- {
- provide: SEARCH_CONFIG_SERVICE,
- useClass: SearchConfigurationService
- }
- ]
})
export class AdminNotifyDashboardComponent implements OnInit{
- mockFilterConfig : SearchFilterConfig = Object.assign(new SearchFilterConfig(), {
- type: {
- value: "discovery-filter"
- },
- pageSize: 10,
- name: "author",
- filterType: "text",
- _links: {
- self: {
- href: "https://dspace-coar.4science.cloud/server/api/discover/facets/author"
- }
- }
- });
- mockPaginatedSearchOptions = new PaginatedSearchOptions({
- pagination: Object.assign(new PaginationComponentOptions(), { id: 'page-id', currentPage: 1, pageSize: 20 }),
- configuration: '',
+ metricsConfig = environment.notifyMetrics;
+ private singleResultOptions = Object.assign(new PaginationComponentOptions(), {
+ id: 'single-result-options',
+ pageSize: 1
});
-
- constructor(private searchService: SearchService,
- @Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService,
- ) {}
+ constructor(private searchService: SearchService) {}
ngOnInit() {
- this.searchService.getFacetValuesFor(this.mockFilterConfig, 1, this.mockPaginatedSearchOptions).subscribe(c => console.log(c))
+ const discoveryConfigurations = this.metricsConfig
+ .map(row => row.boxes)
+ .map(boxes => boxes.map(box => box.config).filter(config => !!config));
+ const mergedConfigurations = discoveryConfigurations[0].concat(discoveryConfigurations[1]);
+ const searchConfigurations = mergedConfigurations
+ .map(config => Object.assign(new PaginatedSearchOptions({}),
+ { configuration: config, pagination: this.singleResultOptions }
+ ));
+ // TODO: check for search completion before executing next one
}
}
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 bea0f654ec..57f834f872 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,6 +1,5 @@
-import { Component } from '@angular/core';
+import { Component, Input } from '@angular/core';
import { AdminNotifyMetricsRow } from './admin-notify-metrics.model';
-import { AdminNotifyMetricsRowsConfig } from './admin-notify-metrics.config';
@Component({
selector: 'ds-admin-notify-metrics',
@@ -9,5 +8,6 @@ import { AdminNotifyMetricsRowsConfig } from './admin-notify-metrics.config';
})
export class AdminNotifyMetricsComponent {
- boxesConfig: AdminNotifyMetricsRow[] = AdminNotifyMetricsRowsConfig;
+ @Input()
+ boxesConfig: AdminNotifyMetricsRow[];
}
diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts
deleted file mode 100644
index 6406f91d0b..0000000000
--- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { AdminNotifyMetricsRow } from './admin-notify-metrics.model';
-
-export const AdminNotifyMetricsRowsConfig: AdminNotifyMetricsRow[] = [
- {
- title: 'Number of received LDN',
- boxes: [
- {
- color: '#B8DAFF',
- title: 'Accepted',
- },
- {
- color: '#D4EDDA',
- title: 'Processed LDN',
- },
- {
- color: '#FDBBC7',
- title: 'Failure',
- },
- {
- color: '#FDBBC7',
- title: 'Untrusted',
- },
- {
- color: '#43515F',
- title: 'Incoming LDM messages',
- textColor: '#fff'
- },
- ]
- },
- {
- title: 'Number of generated LDN',
- boxes: [
- {
- color: '#D4EDDA',
- title: 'Delivered',
- },
- {
- color: '#B8DAFF',
- title: 'Queued',
- },
- {
- color: '#FDEEBB',
- title: 'Queued for retry',
- },
- {
- color: '#FDBBC7',
- title: 'Failure',
- },
- {
- color: '#43515F',
- title: 'Outgoing LDM messages',
- textColor: '#fff'
- },
- ]
- }
-];
diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts
index 6fb673575c..ab0f9cfa91 100644
--- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts
+++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts
@@ -2,6 +2,7 @@ export interface AdminNotifyMetricsBox {
color: string;
textColor?: string;
title: string;
+ config: string;
count?: number
}
diff --git a/src/config/app-config.interface.ts b/src/config/app-config.interface.ts
index e610257dbf..e3f2b40db4 100644
--- a/src/config/app-config.interface.ts
+++ b/src/config/app-config.interface.ts
@@ -23,6 +23,9 @@ import { HomeConfig } from './homepage-config.interface';
import { MarkdownConfig } from './markdown-config.interface';
import { FilterVocabularyConfig } from './filter-vocabulary-config';
import { DiscoverySortConfig } from './discovery-sort.config';
+import {
+ AdminNotifyMetricsRow
+} from "../app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model";
interface AppConfig extends Config {
ui: UIServerConfig;
@@ -50,6 +53,7 @@ interface AppConfig extends Config {
markdown: MarkdownConfig;
vocabularies: FilterVocabularyConfig[];
comcolSelectionSort: DiscoverySortConfig;
+ notifyMetrics: AdminNotifyMetricsRow[];
}
/**
diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts
index 6150e1ad02..22f9d8322d 100644
--- a/src/config/default-app-config.ts
+++ b/src/config/default-app-config.ts
@@ -23,6 +23,9 @@ import { HomeConfig } from './homepage-config.interface';
import { MarkdownConfig } from './markdown-config.interface';
import { FilterVocabularyConfig } from './filter-vocabulary-config';
import { DiscoverySortConfig } from './discovery-sort.config';
+import {
+ AdminNotifyMetricsRow
+} from "../app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model";
export class DefaultAppConfig implements AppConfig {
production = false;
@@ -443,4 +446,69 @@ export class DefaultAppConfig implements AppConfig {
sortField:'dc.title',
sortDirection:'ASC',
};
+
+ notifyMetrics: AdminNotifyMetricsRow[] = [
+ {
+ title: 'Number of received LDN',
+ boxes: [
+ {
+ color: '#B8DAFF',
+ title: 'Accepted',
+ config: 'NOTIFY.incoming.accepted'
+ },
+ {
+ color: '#D4EDDA',
+ title: 'Processed LDN',
+ config: 'NOTIFY.incoming.processed'
+ },
+ {
+ color: '#FDBBC7',
+ title: 'Failure',
+ config: 'NOTIFY.incoming.failure'
+ },
+ {
+ color: '#FDBBC7',
+ title: 'Untrusted',
+ config: 'NOTIFY.incoming.untrusted'
+ },
+ {
+ color: '#43515F',
+ title: 'Involved items',
+ textColor: '#fff',
+ config: ''
+ },
+ ]
+ },
+ {
+ title: 'Number of generated LDN',
+ boxes: [
+ {
+ color: '#D4EDDA',
+ title: 'Delivered',
+ config: 'NOTIFY.outgoing.delivered'
+ },
+ {
+ color: '#B8DAFF',
+ title: 'Queued',
+ config: 'NOTIFY.outgoing.queued'
+ },
+ {
+ color: '#FDEEBB',
+ title: 'Queued for retry',
+ config: 'NOTIFY.outgoing.queued_for_retry'
+ },
+ {
+ color: '#FDBBC7',
+ title: 'Failure',
+ config: 'NOTIFY.outgoing.failure'
+ },
+ {
+ color: '#43515F',
+ title: 'Involved items',
+ textColor: '#fff',
+ config: ''
+ },
+ ]
+ }
+ ]
}
diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts
index 806a45fbd5..8858e95a2a 100644
--- a/src/environments/environment.test.ts
+++ b/src/environments/environment.test.ts
@@ -317,5 +317,70 @@ export const environment: BuildConfig = {
vocabulary: 'srsc',
enabled: true
}
+ ],
+
+ notifyMetrics: [
+ {
+ title: 'Number of received LDN',
+ boxes: [
+ {
+ color: '#B8DAFF',
+ title: 'Accepted',
+ config: 'NOTIFY.incoming.accepted'
+ },
+ {
+ color: '#D4EDDA',
+ title: 'Processed LDN',
+ config: 'NOTIFY.incoming.processed'
+ },
+ {
+ color: '#FDBBC7',
+ title: 'Failure',
+ config: 'NOTIFY.incoming.failure'
+ },
+ {
+ color: '#FDBBC7',
+ title: 'Untrusted',
+ config: 'NOTIFY.incoming.untrusted'
+ },
+ {
+ color: '#43515F',
+ title: 'Incoming LDM messages',
+ textColor: '#fff',
+ config: ''
+ },
+ ]
+ },
+ {
+ title: 'Number of generated LDN',
+ boxes: [
+ {
+ color: '#D4EDDA',
+ title: 'Delivered',
+ config: 'NOTIFY.outgoing.delivered'
+ },
+ {
+ color: '#B8DAFF',
+ title: 'Queued',
+ config: 'NOTIFY.outgoing.queued'
+ },
+ {
+ color: '#FDEEBB',
+ title: 'Queued for retry',
+ config: 'NOTIFY.outgoing.queued_for_retry'
+ },
+ {
+ color: '#FDBBC7',
+ title: 'Failure',
+ config: 'NOTIFY.outgoing.failure'
+ },
+ {
+ color: '#43515F',
+ title: 'Outgoing LDM messages',
+ textColor: '#fff',
+ config: ''
+ },
+ ]
+ }
]
};