- {{message.queueTimeout}}
+ {{ message.queueTimeout }}
|
- {{message.context}}
- {{message.object}}
+ {{ message.context }}
+ {{ message.object }}
|
- {{message.origin}}
- {{message.target}}
+ {{ message.origin }}
+ {{ message.target }}
|
- {{message.coarNotifyType}}
+ {{ message.coarNotifyType }}
|
- {{message.queueStatusLabel}}
+ {{ message.queueStatusLabel | translate}}
|
diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts
index b17a03274f..0c1eee81c3 100644
--- a/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts
+++ b/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts
@@ -1,13 +1,68 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AdminNotifySearchResultComponent } from './admin-notify-search-result.component';
+import { AdminNotifyMessagesService } from '../services/admin-notify-messages.service';
+import { ObjectCacheService } from '../../../core/cache/object-cache.service';
+import { RequestService } from '../../../core/data/request.service';
+import { HALEndpointService } from '../../../core/shared/hal-endpoint.service';
+import { RemoteDataBuildService } from '../../../core/cache/builders/remote-data-build.service';
+import { cold } from 'jasmine-marbles';
+import { ConfigurationProperty } from '../../../core/shared/configuration-property.model';
+import { RouteService } from '../../../core/services/route.service';
+import { routeServiceStub } from '../../../shared/testing/route-service.stub';
+import { ActivatedRoute } from '@angular/router';
+import { RouterStub } from '../../../shared/testing/router.stub';
+import { TranslateModule } from '@ngx-translate/core';
+import { EMPTY } from 'rxjs';
describe('AdminNotifySearchResultComponent', () => {
let component: AdminNotifySearchResultComponent;
let fixture: ComponentFixture ;
+ let objectCache: ObjectCacheService;
+ let requestService: RequestService;
+ let halService: HALEndpointService;
+ let rdbService: RemoteDataBuildService;
+ let adminNotifyMessageService: AdminNotifyMessagesService;
+ const requestUUID = '34cfed7c-f597-49ef-9cbe-ea351f0023c2';
+ const testObject = {
+ uuid: 'test-property',
+ name: 'test-property',
+ values: ['value-1', 'value-2']
+ } as ConfigurationProperty;
+
beforeEach(async () => {
+ halService = jasmine.createSpyObj('halService', {
+ getEndpoint: cold('a', { a: '' })
+ });
+ adminNotifyMessageService = jasmine.createSpyObj('adminNotifyMessageService', {
+ getDetailedMessages: EMPTY
+ });
+ requestService = jasmine.createSpyObj('requestService', {
+ generateRequestId: requestUUID,
+ send: true
+ });
+ rdbService = jasmine.createSpyObj('rdbService', {
+ buildSingle: cold('a', {
+ a: {
+ payload: testObject
+ }
+ })
+ });
+ objectCache = {} as ObjectCacheService;
+
+
await TestBed.configureTestingModule({
- declarations: [ AdminNotifySearchResultComponent ]
+ imports: [TranslateModule.forRoot()],
+ declarations: [ AdminNotifySearchResultComponent ],
+ providers: [
+ {provide: AdminNotifyMessagesService, useValue: adminNotifyMessageService},
+ { provide: RouteService, useValue: routeServiceStub },
+ { provide: ActivatedRoute, useValue: new RouterStub() },
+ { provide: HALEndpointService, useValue: halService },
+ { provide: ObjectCacheService, useValue: objectCache },
+ { provide: RequestService, useValue: requestService },
+ { provide: RemoteDataBuildService, useValue: rdbService },
+ ]
})
.compileComponents();
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 f75eab3366..dd4a159bf9 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
@@ -1,4 +1,4 @@
-import { ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';
+import { Component, Inject, OnDestroy, OnInit } from '@angular/core';
import { AdminNotifySearchResult } from '../models/admin-notify-message-search-result.model';
import { ViewMode } from '../../../core/shared/view-mode.model';
import { Context } from '../../../core/shared/context.model';
@@ -12,14 +12,10 @@ import {
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { AdminNotifyDetailModalComponent } from '../admin-notify-detail-modal/admin-notify-detail-modal.component';
-import { LdnServicesService } from "../../admin-ldn-services/ldn-services-data/ldn-services-data.service";
-import { BehaviorSubject, from, Observable, of, scan, Subscription, switchMap } from "rxjs";
-import { combineLatest, filter, map, mergeMap, tap } from "rxjs/operators";
-import { getAllSucceededRemoteDataPayload } from "../../../core/shared/operators";
-import { ItemDataService } from "../../../core/data/item-data.service";
-import { AdminNotifyMessagesService } from "../services/admin-notify-messages.service";
-import { SearchConfigurationService } from "../../../core/shared/search/search-configuration.service";
-import { SEARCH_CONFIG_SERVICE } from "../../../my-dspace-page/my-dspace-page.component";
+import { BehaviorSubject, Subscription } from 'rxjs';
+import { AdminNotifyMessagesService } from '../services/admin-notify-messages.service';
+import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service';
+import { SEARCH_CONFIG_SERVICE } from '../../../my-dspace-page/my-dspace-page.component';
@tabulatableObjectsComponent(PaginatedList, ViewMode.Table, Context.CoarNotify)
@Component({
@@ -55,7 +51,7 @@ export class AdminNotifySearchResultComponent extends TabulatableResultListEleme
* Map messages on init for readable representation
*/
ngOnInit() {
- this.mapDetailsToMessages()
+ this.mapDetailsToMessages();
this.subs.push(this.searchConfigService.getCurrentConfiguration('')
.subscribe(configuration => {
this.isInbound = configuration === 'NOTIFY.incoming';
@@ -102,10 +98,10 @@ export class AdminNotifySearchResultComponent extends TabulatableResultListEleme
this.subs.push(
this.adminNotifyMessagesService.reprocessMessage(message, this.messagesSubject$)
.subscribe(response => {
- this.messagesSubject$.next(response)
+ this.messagesSubject$.next(response);
}
)
- )
+ );
}
@@ -116,7 +112,7 @@ export class AdminNotifySearchResultComponent extends TabulatableResultListEleme
private mapDetailsToMessages() {
this.subs.push(this.adminNotifyMessagesService.getDetailedMessages(this.objects?.page.map(pageResult => pageResult.indexableObject))
.subscribe(response => {
- this.messagesSubject$.next(response)
- }))
+ this.messagesSubject$.next(response);
+ }));
}
}
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 4c36e01eaf..872b699228 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
@@ -1,21 +1,21 @@
-import { autoserialize, autoserializeAs, deserialize, inheritSerialization } from 'cerialize';
+import { autoserialize, 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 { GenericConstructor } from '../../../core/shared/generic-constructor';
import { ListableObject } from '../../../shared/object-collection/shared/listable-object.model';
-import { Observable } from "rxjs";
+import { Observable } from 'rxjs';
export enum QueueStatusMap {
- QUEUE_STATUS_PROCESSED = 'Processed',
- QUEUE_STATUS_FAILED = 'Failed',
- QUEUE_STATUS_UNMAPPED_ACTION = 'Unmapped action',
- QUEUE_STATUS_QUEUED_FOR_RETRY = 'Queued for retry',
- QUEUE_STATUS_PROCESSING = 'Processing',
- QUEUE_STATUS_QUEUED = 'Queued',
- QUEUE_STATUS_UNTRUSTED = 'Untrusted',
-};
+ QUEUE_STATUS_PROCESSED = 'notify-queue-status.processed',
+ QUEUE_STATUS_FAILED = 'notify-queue-status.processed',
+ QUEUE_STATUS_UNMAPPED_ACTION = 'notify-queue-status.unmapped_action',
+ QUEUE_STATUS_QUEUED_FOR_RETRY = 'notify-queue-status.queue_retry',
+ QUEUE_STATUS_PROCESSING = 'notify-queue-status.processing',
+ QUEUE_STATUS_QUEUED = 'notify-queue-status.queued',
+ QUEUE_STATUS_UNTRUSTED = 'notify-queue-status.untrusted',
+}
/**
* A message that includes admin notify info
*/
diff --git a/src/app/admin/admin-notify-dashboard/services/admin-notify-messages.service.ts b/src/app/admin/admin-notify-dashboard/services/admin-notify-messages.service.ts
index d61c6f7712..5820f3b7d6 100644
--- a/src/app/admin/admin-notify-dashboard/services/admin-notify-messages.service.ts
+++ b/src/app/admin/admin-notify-dashboard/services/admin-notify-messages.service.ts
@@ -1,33 +1,18 @@
import {Injectable} from '@angular/core';
import {dataService} from '../../../core/data/base/data-service.decorator';
import {IdentifiableDataService} from '../../../core/data/base/identifiable-data.service';
-import {FindAllData, FindAllDataImpl} from '../../../core/data/base/find-all-data';
-import {DeleteData, DeleteDataImpl} from '../../../core/data/base/delete-data';
import {RequestService} from '../../../core/data/request.service';
import {RemoteDataBuildService} from '../../../core/cache/builders/remote-data-build.service';
import {ObjectCacheService} from '../../../core/cache/object-cache.service';
import {HALEndpointService} from '../../../core/shared/hal-endpoint.service';
import {NotificationsService} from '../../../shared/notifications/notifications.service';
-import {FindListOptions} from '../../../core/data/find-list-options.model';
-import {FollowLinkConfig} from '../../../shared/utils/follow-link-config.model';
import { BehaviorSubject, from, Observable, of, scan } from 'rxjs';
-import {RemoteData} from '../../../core/data/remote-data';
-import {PaginatedList} from '../../../core/data/paginated-list.model';
-import {NoContent} from '../../../core/shared/NoContent.model';
-import {PatchData, PatchDataImpl} from '../../../core/data/base/patch-data';
-import {ChangeAnalyzer} from '../../../core/data/change-analyzer';
-import {Operation} from 'fast-json-patch';
-import {RestRequestMethod} from '../../../core/data/rest-request-method';
-import {CreateData, CreateDataImpl} from '../../../core/data/base/create-data';
-import {SearchDataImpl} from '../../../core/data/base/search-data';
-import { ADMIN_NOTIFY_MESSAGE } from "../models/admin-notify-message.resource-type";
-import { AdminNotifyMessage, QueueStatusMap } from "../models/admin-notify-message.model";
-import { SearchResult } from "../../../shared/search/models/search-result.model";
-import { map, mergeMap } from "rxjs/operators";
-import { getAllSucceededRemoteDataPayload } from "../../../core/shared/operators";
-import { AdminNotifySearchResult } from "../models/admin-notify-message-search-result.model";
-import { LdnServicesService } from "../../admin-ldn-services/ldn-services-data/ldn-services-data.service";
-import { ItemDataService } from "../../../core/data/item-data.service";
+import { ADMIN_NOTIFY_MESSAGE } from '../models/admin-notify-message.resource-type';
+import { AdminNotifyMessage, QueueStatusMap } from '../models/admin-notify-message.model';
+import { map, mergeMap } from 'rxjs/operators';
+import { getAllSucceededRemoteDataPayload } from '../../../core/shared/operators';
+import { LdnServicesService } from '../../admin-ldn-services/ldn-services-data/ldn-services-data.service';
+import { ItemDataService } from '../../../core/data/item-data.service';
/**
* Injectable service responsible for fetching/sending data from/to the REST API on the messages endpoint.
@@ -55,7 +40,7 @@ export class AdminNotifyMessagesService extends IdentifiableDataService {
+ public getDetailedMessages(messages: AdminNotifyMessage[]): Observable {
return from(messages.map(message => this.formatMessageLabels(message))).pipe(
mergeMap(message =>
message.target ? this.ldnServicesService.findById(message.target.toString()).pipe(
@@ -92,7 +77,7 @@ export class AdminNotifyMessagesService extends IdentifiableDataService [...acc, value], []),
- )
+ );
}
/**
@@ -100,7 +85,7 @@ export class AdminNotifyMessagesService extends IdentifiableDataService) : Observable {
+ public reprocessMessage(message: AdminNotifyMessage, messageSubject: BehaviorSubject): Observable {
return this.findById(message.id).pipe(
getAllSucceededRemoteDataPayload(),
map(reprocessedMessage => this.formatMessageLabels(reprocessedMessage)),
@@ -113,9 +98,9 @@ export class AdminNotifyMessagesService extends IdentifiableDataService)[] {
return [testType];
}
diff --git a/src/app/shared/object-collection/shared/tabulatable-objects/tabulatable-objects-loader.component.spec.ts b/src/app/shared/object-collection/shared/tabulatable-objects/tabulatable-objects-loader.component.spec.ts
index 21fd2b94b2..a887482fa7 100644
--- a/src/app/shared/object-collection/shared/tabulatable-objects/tabulatable-objects-loader.component.spec.ts
+++ b/src/app/shared/object-collection/shared/tabulatable-objects/tabulatable-objects-loader.component.spec.ts
@@ -1,31 +1,24 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TabulatableObjectsLoaderComponent } from './tabulatable-objects-loader.component';
-import { ThemeService } from "../../../theme-support/theme.service";
-import { provideMockStore } from "@ngrx/store/testing";
-import { ListableObject } from "../listable-object.model";
-import { PaginatedList } from "../../../../core/data/paginated-list.model";
-import { Context } from "../../../../core/shared/context.model";
-import { GenericConstructor } from "../../../../core/shared/generic-constructor";
-import { TabulatableObjectsDirective } from "./tabulatable-objects.directive";
-import { ListableObjectComponentLoaderComponent } from "../listable-object/listable-object-component-loader.component";
-import { ChangeDetectionStrategy } from "@angular/core";
-import {
- ItemListElementComponent
-} from "../../../object-list/item-list-element/item-types/item/item-list-element.component";
+import { ThemeService } from '../../../theme-support/theme.service';
+import { provideMockStore } from '@ngrx/store/testing';
+import { ListableObject } from '../listable-object.model';
+import { PaginatedList } from '../../../../core/data/paginated-list.model';
+import { Context } from '../../../../core/shared/context.model';
+import { TabulatableObjectsDirective } from './tabulatable-objects.directive';
+import { ChangeDetectionStrategy } from '@angular/core';
+
+
import {
TabulatableResultListElementsComponent
-} from "../../../object-list/search-result-list-element/tabulatable-search-result/tabulatable-result-list-elements.component";
+} from '../../../object-list/search-result-list-element/tabulatable-search-result/tabulatable-result-list-elements.component';
+import { TestType } from '../listable-object/listable-object-component-loader.component.spec';
const testType = 'TestType';
-class TestType extends ListableObject {
- getRenderTypes(): (string | GenericConstructor)[] {
- return [testType];
- }
-}
class TestTypes extends PaginatedList {
- page: TestType[] = [new TestType()]
+ page: TestType[] = [new TestType()];
}
diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.ts b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.ts
index b14d3187d7..cdbab61a30 100644
--- a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.ts
+++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.ts
@@ -1,6 +1,6 @@
import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
-import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';
+import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FacetValue } from '../../../../models/facet-value.model';
import { SearchFilterConfig } from '../../../../models/search-filter-config.model';
diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-range-option/search-facet-range-option.component.ts b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-range-option/search-facet-range-option.component.ts
index 6afe994f2f..b08a54e42b 100644
--- a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-range-option/search-facet-range-option.component.ts
+++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-range-option/search-facet-range-option.component.ts
@@ -1,6 +1,6 @@
import { Observable, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
-import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';
+import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FacetValue } from '../../../../models/facet-value.model';
import { SearchFilterConfig } from '../../../../models/search-filter-config.model';
diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.ts b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.ts
index 8479417c57..4566b882eb 100644
--- a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.ts
+++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component.ts
@@ -1,5 +1,5 @@
import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
-import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';
+import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { SearchFilterConfig } from '../../../../models/search-filter-config.model';
import { SearchService } from '../../../../../../core/shared/search/search.service';
diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5
index b93abdf993..da0d1a3f82 100644
--- a/src/assets/i18n/en.json5
+++ b/src/assets/i18n/en.json5
@@ -3573,6 +3573,20 @@
"notify-message-result.reprocess": "Reprocess",
+ "notify-queue-status.processed": "Processed",
+
+ "notify-queue-status.failed": "Failed",
+
+ "notify-queue-status.queue_retry": "Queued for retry",
+
+ "notify-queue-status.unmapped_action": "Unmapped action",
+
+ "notify-queue-status.processing": "Processing",
+
+ "notify-queue-status.queued": "Queued",
+
+ "notify-queue-status.untrusted": "Untrusted",
+
"orgunit.listelement.badge": "Repository Item",
"orgunit.listelement.no-title": "Untitled",
|