mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 15:03:07 +00:00
fix lint, fix aggregate count, add translations
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
<a ngbNavLink>{{'admin-notify-dashboard.metrics' | translate}}</a>
|
||||
<ng-template ngbNavContent>
|
||||
<div id="metrics">
|
||||
<ds-admin-notify-metrics [boxesConfig]="notifyMetricsRows$ | async"></ds-admin-notify-metrics>
|
||||
<ds-admin-notify-metrics *ngIf="(notifyMetricsRows$ | async)?.length" [boxesConfig]="notifyMetricsRows$ | async"></ds-admin-notify-metrics>
|
||||
</div>
|
||||
</ng-template>
|
||||
</li>
|
||||
|
@@ -1,20 +1,20 @@
|
||||
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 { PaginationComponentOptions } from "../../shared/pagination/pagination-component-options.model";
|
||||
import { SearchService } from '../../core/shared/search/search.service';
|
||||
import { environment } from '../../../environments/environment';
|
||||
import { PaginatedSearchOptions } from '../../shared/search/models/paginated-search-options.model';
|
||||
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
|
||||
import {
|
||||
listableObjectComponent
|
||||
} from "../../shared/object-collection/shared/listable-object/listable-object.decorator";
|
||||
import { ViewMode } from "../../core/shared/view-mode.model";
|
||||
import { Context } from "../../core/shared/context.model";
|
||||
import { AdminNotifySearchResult } from "./models/admin-notify-message-search-result.model";
|
||||
import { forkJoin, Observable } from "rxjs";
|
||||
import { getFirstCompletedRemoteData } from "../../core/shared/operators";
|
||||
import { map } from "rxjs/operators";
|
||||
import { SearchObjects } from "../../shared/search/models/search-objects.model";
|
||||
import { AdminNotifyMetricsBox, AdminNotifyMetricsRow } from "./admin-notify-metrics/admin-notify-metrics.model";
|
||||
import { DSpaceObject } from "../../core/shared/dspace-object.model";
|
||||
} from '../../shared/object-collection/shared/listable-object/listable-object.decorator';
|
||||
import { ViewMode } from '../../core/shared/view-mode.model';
|
||||
import { Context } from '../../core/shared/context.model';
|
||||
import { AdminNotifySearchResult } from './models/admin-notify-message-search-result.model';
|
||||
import { forkJoin, Observable } from 'rxjs';
|
||||
import { getFirstCompletedRemoteData } from '../../core/shared/operators';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { SearchObjects } from '../../shared/search/models/search-objects.model';
|
||||
import { AdminNotifyMetricsBox, AdminNotifyMetricsRow } from './admin-notify-metrics/admin-notify-metrics.model';
|
||||
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
||||
|
||||
|
||||
@listableObjectComponent(AdminNotifySearchResult, ViewMode.GridElement, Context.AdminSearch)
|
||||
@@ -25,7 +25,7 @@ import { DSpaceObject } from "../../core/shared/dspace-object.model";
|
||||
})
|
||||
export class AdminNotifyDashboardComponent implements OnInit{
|
||||
|
||||
public notifyMetricsRows$: Observable<AdminNotifyMetricsRow[]>
|
||||
public notifyMetricsRows$: Observable<AdminNotifyMetricsRow[]>;
|
||||
|
||||
private metricsConfig = environment.notifyMetrics;
|
||||
private singleResultOptions = Object.assign(new PaginationComponentOptions(), {
|
||||
@@ -52,7 +52,7 @@ export class AdminNotifyDashboardComponent implements OnInit{
|
||||
)
|
||||
).pipe(
|
||||
map(metricBoxes => this.mapUpdatedBoxesToMetricsRows(metricBoxes))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,30 +61,47 @@ export class AdminNotifyDashboardComponent implements OnInit{
|
||||
* @param searchObject The object to map
|
||||
* @private
|
||||
*/
|
||||
private mapSearchObjectsToMetricsBox(searchObject: SearchObjects<DSpaceObject>) : AdminNotifyMetricsBox {
|
||||
const objectConfig = searchObject.configuration;
|
||||
private mapSearchObjectsToMetricsBox(searchObject: SearchObjects<DSpaceObject>): AdminNotifyMetricsBox {
|
||||
const count = searchObject.pageInfo.totalElements;
|
||||
const objectConfig = searchObject.configuration;
|
||||
const metricsBoxes = [].concat(...this.metricsConfig.map((config) => config.boxes));
|
||||
|
||||
return {
|
||||
...metricsBoxes.find(box => box.config === objectConfig),
|
||||
count
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to map updated boxes with count to each row of the configuration
|
||||
*
|
||||
* @param boxes The object to map
|
||||
* @param boxesWithCount The object to map
|
||||
* @private
|
||||
*/
|
||||
private mapUpdatedBoxesToMetricsRows(boxes: AdminNotifyMetricsBox[]) : AdminNotifyMetricsRow[] {
|
||||
private mapUpdatedBoxesToMetricsRows(boxesWithCount: AdminNotifyMetricsBox[]): AdminNotifyMetricsRow[] {
|
||||
return this.metricsConfig.map(row => {
|
||||
return {
|
||||
...row,
|
||||
boxes: row.boxes.map(box => boxes.find(boxWithCount => boxWithCount.config === box.config))
|
||||
.filter(box => !!box)
|
||||
boxes: row.boxes.map(rowBox => {
|
||||
if (rowBox.isRowAggregateCount) {
|
||||
const currentRowBoxesWithCount = row.boxes.filter(box => !box.isRowAggregateCount)
|
||||
.map(notAggregateBox => {
|
||||
return {
|
||||
...notAggregateBox,
|
||||
count: boxesWithCount.find(boxWithCount => boxWithCount.config === notAggregateBox.config)?.count
|
||||
}
|
||||
})
|
||||
return {
|
||||
...rowBox,
|
||||
count: currentRowBoxesWithCount.map(box => box.count).reduce((accumulator, currentValue) => {
|
||||
return accumulator + currentValue;
|
||||
},0)
|
||||
};
|
||||
} else {
|
||||
return boxesWithCount.find(boxWithCount => boxWithCount.config === rowBox.config);
|
||||
}
|
||||
})
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -1 +0,0 @@
|
||||
<p>admin-notify-logs works!</p>
|
||||
|
@@ -3,7 +3,8 @@ export interface AdminNotifyMetricsBox {
|
||||
textColor?: string;
|
||||
title: string;
|
||||
config: string;
|
||||
count?: number
|
||||
count?: number;
|
||||
isRowAggregateCount?: boolean;
|
||||
}
|
||||
|
||||
export interface AdminNotifyMetricsRow {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import { AdminNotifyMessage } from "./admin-notify-message.model";
|
||||
import { searchResultFor } from "../../../shared/search/search-result-element-decorator";
|
||||
import { SearchResult } from "../../../shared/search/models/search-result.model";
|
||||
import { AdminNotifyMessage } from './admin-notify-message.model';
|
||||
import { searchResultFor } from '../../../shared/search/search-result-element-decorator';
|
||||
import { SearchResult } from '../../../shared/search/models/search-result.model';
|
||||
|
||||
|
||||
@searchResultFor(AdminNotifyMessage)
|
||||
|
@@ -1,8 +1,8 @@
|
||||
import { deserialize, inheritSerialization } from 'cerialize';
|
||||
import { typedObject } from "../../../core/cache/builders/build-decorators";
|
||||
import { ADMIN_NOTIFY_MESSAGE } from "./admin-notify-message.resource-type";
|
||||
import { excludeFromEquals } from "../../../core/utilities/equals.decorators";
|
||||
import { DSpaceObject } from "../../../core/shared/dspace-object.model";
|
||||
import { typedObject } from '../../../core/cache/builders/build-decorators';
|
||||
import { ADMIN_NOTIFY_MESSAGE } from './admin-notify-message.resource-type';
|
||||
import { excludeFromEquals } from '../../../core/utilities/equals.decorators';
|
||||
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
||||
|
||||
/**
|
||||
* A message that includes admin notify info
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { ResourceType } from "../../../core/shared/resource-type";
|
||||
import { ResourceType } from '../../../core/shared/resource-type';
|
||||
|
||||
/**
|
||||
* The resource type for AdminNotifyMessage
|
||||
|
@@ -197,7 +197,7 @@ import {
|
||||
import { SubmissionCoarNotifyConfig } from '../submission/sections/section-coar-notify/submission-coar-notify.config';
|
||||
import { NotifyRequestsStatus } from '../item-page/simple/notify-requests-status/notify-requests-status.model';
|
||||
import { NotifyRequestsStatusDataService } from './data/notify-services-status-data.service';
|
||||
import { AdminNotifyMessage } from "../admin/admin-notify-dashboard/models/admin-notify-message.model";
|
||||
import { AdminNotifyMessage } from '../admin/admin-notify-dashboard/models/admin-notify-message.model';
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import { Component, Input } from '@angular/core';
|
||||
import {
|
||||
AdminNotifyMetricsBox
|
||||
} from "../../admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model";
|
||||
} from '../../admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model';
|
||||
|
||||
@Component({
|
||||
selector: 'ds-notification-box',
|
||||
|
@@ -3449,6 +3449,26 @@
|
||||
|
||||
"admin-notify-dashboard.logs": "Notify logs",
|
||||
|
||||
"admin-notify-dashboard.received-ldn": "Number of received LDN",
|
||||
|
||||
"admin-notify-dashboard.generated-ldn": "Number of generated LDN",
|
||||
|
||||
"admin-notify-dashboard.accepted": "Accepted",
|
||||
|
||||
"admin-notify-dashboard.processed": "Processed LDN",
|
||||
|
||||
"admin-notify-dashboard.failure": "Failure",
|
||||
|
||||
"admin-notify-dashboard.untrusted": "Untrusted",
|
||||
|
||||
"admin-notify-dashboard.delivered": "Delivered",
|
||||
|
||||
"admin-notify-dashboard.queued": "Queued",
|
||||
|
||||
"admin-notify-dashboard.queued-for-retry": "Queued for retry",
|
||||
|
||||
"admin-notify-dashboard.involved-items": "Involved items",
|
||||
|
||||
"admin.notify.dashboard.breadcrumbs": "Dashboard",
|
||||
|
||||
"orgunit.listelement.badge": "Organizational Unit",
|
||||
|
@@ -25,7 +25,7 @@ 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";
|
||||
} from '../app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model';
|
||||
|
||||
interface AppConfig extends Config {
|
||||
ui: UIServerConfig;
|
||||
|
@@ -25,7 +25,7 @@ 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";
|
||||
} from '../app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model';
|
||||
|
||||
export class DefaultAppConfig implements AppConfig {
|
||||
production = false;
|
||||
@@ -449,66 +449,68 @@ export class DefaultAppConfig implements AppConfig {
|
||||
|
||||
notifyMetrics: AdminNotifyMetricsRow[] = [
|
||||
{
|
||||
title: 'Number of received LDN',
|
||||
title: 'admin-notify-dashboard.received-ldn',
|
||||
boxes: [
|
||||
{
|
||||
color: '#B8DAFF',
|
||||
title: 'Accepted',
|
||||
title: 'admin-notify-dashboard.accepted',
|
||||
config: 'NOTIFY.incoming.accepted'
|
||||
},
|
||||
{
|
||||
color: '#D4EDDA',
|
||||
title: 'Processed LDN',
|
||||
title: 'admin-notify-dashboard.processed',
|
||||
config: 'NOTIFY.incoming.processed'
|
||||
},
|
||||
{
|
||||
color: '#FDBBC7',
|
||||
title: 'Failure',
|
||||
title: 'admin-notify-dashboard.failure',
|
||||
config: 'NOTIFY.incoming.failure'
|
||||
},
|
||||
{
|
||||
color: '#FDBBC7',
|
||||
title: 'Untrusted',
|
||||
title: 'admin-notify-dashboard.untrusted',
|
||||
config: 'NOTIFY.incoming.untrusted'
|
||||
},
|
||||
{
|
||||
color: '#43515F',
|
||||
title: 'Involved items',
|
||||
title: 'admin-notify-dashboard.involved-items',
|
||||
textColor: '#fff',
|
||||
config: ''
|
||||
config: '',
|
||||
isRowAggregateCount: true
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Number of generated LDN',
|
||||
title: 'admin-notify-dashboard.generated-ldn',
|
||||
boxes: [
|
||||
{
|
||||
color: '#D4EDDA',
|
||||
title: 'Delivered',
|
||||
title: 'admin-notify-dashboard.delivered',
|
||||
config: 'NOTIFY.outgoing.delivered'
|
||||
},
|
||||
{
|
||||
color: '#B8DAFF',
|
||||
title: 'Queued',
|
||||
title: 'admin-notify-dashboard.queued',
|
||||
config: 'NOTIFY.outgoing.queued'
|
||||
},
|
||||
{
|
||||
color: '#FDEEBB',
|
||||
title: 'Queued for retry',
|
||||
title: 'admin-notify-dashboard.queued-for-retry',
|
||||
config: 'NOTIFY.outgoing.queued_for_retry'
|
||||
},
|
||||
{
|
||||
color: '#FDBBC7',
|
||||
title: 'Failure',
|
||||
title: 'admin-notify-dashboard.failure',
|
||||
config: 'NOTIFY.outgoing.failure'
|
||||
},
|
||||
{
|
||||
color: '#43515F',
|
||||
title: 'Involved items',
|
||||
title: 'admin-notify-dashboard.involved-items',
|
||||
textColor: '#fff',
|
||||
config: ''
|
||||
config: '',
|
||||
isRowAggregateCount: true
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
];
|
||||
}
|
||||
|
@@ -321,64 +321,66 @@ export const environment: BuildConfig = {
|
||||
|
||||
notifyMetrics: [
|
||||
{
|
||||
title: 'Number of received LDN',
|
||||
title: 'admin-notify-dashboard.received-ldn',
|
||||
boxes: [
|
||||
{
|
||||
color: '#B8DAFF',
|
||||
title: 'Accepted',
|
||||
title: 'admin-notify-dashboard.accepted',
|
||||
config: 'NOTIFY.incoming.accepted'
|
||||
},
|
||||
{
|
||||
color: '#D4EDDA',
|
||||
title: 'Processed LDN',
|
||||
title: 'admin-notify-dashboard.processed',
|
||||
config: 'NOTIFY.incoming.processed'
|
||||
},
|
||||
{
|
||||
color: '#FDBBC7',
|
||||
title: 'Failure',
|
||||
title: 'admin-notify-dashboard.failure',
|
||||
config: 'NOTIFY.incoming.failure'
|
||||
},
|
||||
{
|
||||
color: '#FDBBC7',
|
||||
title: 'Untrusted',
|
||||
title: 'admin-notify-dashboard.untrusted',
|
||||
config: 'NOTIFY.incoming.untrusted'
|
||||
},
|
||||
{
|
||||
color: '#43515F',
|
||||
title: 'Incoming LDM messages',
|
||||
title: 'admin-notify-dashboard.involved-items',
|
||||
textColor: '#fff',
|
||||
config: ''
|
||||
config: '',
|
||||
isRowAggregateCount: true
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Number of generated LDN',
|
||||
title: 'admin-notify-dashboard.generated-ldn',
|
||||
boxes: [
|
||||
{
|
||||
color: '#D4EDDA',
|
||||
title: 'Delivered',
|
||||
title: 'admin-notify-dashboard.delivered',
|
||||
config: 'NOTIFY.outgoing.delivered'
|
||||
},
|
||||
{
|
||||
color: '#B8DAFF',
|
||||
title: 'Queued',
|
||||
title: 'admin-notify-dashboard.queued',
|
||||
config: 'NOTIFY.outgoing.queued'
|
||||
},
|
||||
{
|
||||
color: '#FDEEBB',
|
||||
title: 'Queued for retry',
|
||||
title: 'admin-notify-dashboard.queued-for-retry',
|
||||
config: 'NOTIFY.outgoing.queued_for_retry'
|
||||
},
|
||||
{
|
||||
color: '#FDBBC7',
|
||||
title: 'Failure',
|
||||
title: 'admin-notify-dashboard.failure',
|
||||
config: 'NOTIFY.outgoing.failure'
|
||||
},
|
||||
{
|
||||
color: '#43515F',
|
||||
title: 'Outgoing LDM messages',
|
||||
title: 'admin-notify-dashboard.involved-items',
|
||||
textColor: '#fff',
|
||||
config: ''
|
||||
config: '',
|
||||
isRowAggregateCount: true
|
||||
},
|
||||
]
|
||||
}
|
||||
|
Reference in New Issue
Block a user