merge CST-5337

This commit is contained in:
FrancescoMolinaro
2023-12-18 12:10:15 +01:00
59 changed files with 187 additions and 132 deletions

View File

@@ -11,9 +11,11 @@ import { AdminQualityAssuranceTopicsPageResolver } from './admin-quality-assuran
import { AdminQualityAssuranceEventsPageResolver } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.resolver';
import { AdminQualityAssuranceSourcePageComponent } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page.component';
import { AdminQualityAssuranceSourcePageResolver } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page-resolver.service';
import { SourceDataResolver } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-data.reslover';
import {QualityAssuranceBreadcrumbResolver} from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver';
import {QualityAssuranceBreadcrumbService} from '../../core/breadcrumbs/quality-assurance-breadcrumb.service';
import {
SourceDataResolver
} from "./admin-quality-assurance-source-page-component/admin-quality-assurance-source-data.resolver";
@NgModule({
imports: [

View File

@@ -6,7 +6,7 @@ import { AdminNotificationsRoutingModule } from './admin-notifications-routing.m
import { AdminQualityAssuranceTopicsPageComponent } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page.component';
import { AdminQualityAssuranceEventsPageComponent } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.component';
import { AdminQualityAssuranceSourcePageComponent } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page.component';
import {SuggestionNotificationsModule} from '../../suggestion-notifications/suggestion-notifications.module';
import {NotificationsModule} from '../../notifications/notifications.module';
@NgModule({
imports: [
@@ -14,7 +14,7 @@ import {SuggestionNotificationsModule} from '../../suggestion-notifications/sugg
SharedModule,
CoreModule.forRoot(),
AdminNotificationsRoutingModule,
SuggestionNotificationsModule
NotificationsModule
],
declarations: [
AdminQualityAssuranceTopicsPageComponent,

View File

@@ -3,13 +3,15 @@ import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot, Router } from '@a
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { QualityAssuranceSourceObject } from '../../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceService } from '../../../suggestion-notifications/qa/source/quality-assurance-source.service';
import { QualityAssuranceSourceObject } from '../../../core/notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceService } from '../../../notifications/qa/source/quality-assurance-source.service';
import {environment} from '../../../../environments/environment';
/**
* This class represents a resolver that retrieve the route data before the route is activated.
*/
@Injectable()
export class SourceDataResolver implements Resolve<Observable<QualityAssuranceSourceObject[]>> {
private pageSize = environment.qualityAssuranceConfig.pageSize;
/**
* Initialize the effect class variables.
* @param {QualityAssuranceSourceService} qualityAssuranceSourceService
@@ -25,7 +27,7 @@ export class SourceDataResolver implements Resolve<Observable<QualityAssuranceSo
* @returns Observable<QualityAssuranceSourceObject[]>
*/
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<QualityAssuranceSourceObject[]> {
return this.qualityAssuranceSourceService.getSources(5,0).pipe(
return this.qualityAssuranceSourceService.getSources(this.pageSize, 0).pipe(
map((sources: PaginatedList<QualityAssuranceSourceObject>) => {
if (sources.page.length === 1) {
this.router.navigate([this.getResolvedUrl(route) + '/' + sources.page[0].id]);

View File

@@ -5,9 +5,8 @@ import { Injectable } from '@angular/core';
import {map} from 'rxjs/operators';
import {getFirstCompletedRemoteData} from '../shared/operators';
import {TranslateService} from '@ngx-translate/core';
import {
QualityAssuranceTopicDataService
} from '../suggestion-notifications/qa/topics/quality-assurance-topic-data.service';
import {QualityAssuranceTopicDataService} from "../notifications/qa/topics/quality-assurance-topic-data.service";
/**
@@ -42,7 +41,7 @@ export class QualityAssuranceBreadcrumbService implements BreadcrumbsProviderSer
map((topic) => {
return [new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
new Breadcrumb(sourceId, `${url}${sourceId}`),
new Breadcrumb(topic.payload.name, undefined)];
new Breadcrumb(topicId, undefined)];
})
);
} else {

View File

@@ -157,9 +157,9 @@ import { SequenceService } from './shared/sequence.service';
import { CoreState } from './core-state.model';
import { GroupDataService } from './eperson/group-data.service';
import { SubmissionAccessesModel } from './config/models/config-submission-accesses.model';
import { QualityAssuranceTopicObject } from './suggestion-notifications/qa/models/quality-assurance-topic.model';
import { QualityAssuranceEventObject } from './suggestion-notifications/qa/models/quality-assurance-event.model';
import { QualityAssuranceSourceObject } from './suggestion-notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceTopicObject } from './notifications/qa/models/quality-assurance-topic.model';
import { QualityAssuranceEventObject } from './notifications/qa/models/quality-assurance-event.model';
import { QualityAssuranceSourceObject } from './notifications/qa/models/quality-assurance-source.model';
import { RatingAdvancedWorkflowInfo } from './tasks/models/rating-advanced-workflow-info.model';
import { AdvancedWorkflowInfo } from './tasks/models/advanced-workflow-info.model';
import { SelectReviewerAdvancedWorkflowInfo } from './tasks/models/select-reviewer-advanced-workflow-info.model';

View File

@@ -34,4 +34,5 @@ export enum FeatureID {
CanEditItem = 'canEditItem',
CanRegisterDOI = 'canRegisterDOI',
CanSubscribe = 'canSubscribeDso',
CanSeeQA = 'canSeeQA'
}

View File

@@ -22,7 +22,7 @@ export interface QualityAssuranceEventMessageObject {
/**
* The interface representing the Quality Assurance event message
*/
export interface OpenaireQualityAssuranceEventMessageObject {
export interface SourceQualityAssuranceEventMessageObject {
/**
* The type of 'value'
*/
@@ -69,9 +69,9 @@ export interface OpenaireQualityAssuranceEventMessageObject {
title: string;
/**
* The OPENAIRE ID.
* The Source ID.
*/
openaireId: string;
sourceId: string;
/**
* The PID href.
@@ -136,7 +136,7 @@ export class QualityAssuranceEventObject implements CacheableObject {
* The suggestion data. Data may vary depending on the source
*/
@autoserialize
message: OpenaireQualityAssuranceEventMessageObject;
message: SourceQualityAssuranceEventMessageObject;
/**
* The type of this ConfigObject

View File

@@ -530,13 +530,17 @@ export class MenuResolver implements Resolve<boolean> {
* Create menu sections dependent on whether or not the current user is a site administrator
*/
createSiteAdministratorMenuSections() {
this.authorizationService.isAuthorized(FeatureID.AdministratorOf).subscribe((authorized) => {
combineLatest([
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
this.authorizationService.isAuthorized(FeatureID.CanSeeQA)
])
.subscribe(([authorized, canSeeQA]) => {
const menuList = [
/* Notifications */
{
id: 'notifications',
active: false,
visible: authorized,
visible: authorized && canSeeQA,
model: {
type: MenuItemType.TEXT,
text: 'menu.section.notifications'

View File

@@ -1,7 +1,7 @@
import { QualityAssuranceSourceEffects } from './qa/source/quality-assurance-source.effects';
import { QualityAssuranceTopicsEffects } from './qa/topics/quality-assurance-topics.effects';
export const suggestionNotificationsEffects = [
export const notificationsEffects = [
QualityAssuranceTopicsEffects,
QualityAssuranceSourceEffects
];

View File

@@ -2,8 +2,8 @@ import { TestBed } from '@angular/core/testing';
import { Store, StoreModule } from '@ngrx/store';
import { provideMockStore } from '@ngrx/store/testing';
import { cold } from 'jasmine-marbles';
import { suggestionNotificationsReducers } from './suggestion-notifications.reducer';
import { SuggestionNotificationsStateService } from './suggestion-notifications-state.service';
import { suggestionNotificationsReducers } from './notifications.reducer';
import { NotificationsStateService } from './notifications-state.service';
import {
qualityAssuranceSourceObjectMissingPid,
qualityAssuranceSourceObjectMoreAbstract,
@@ -16,7 +16,7 @@ import { RetrieveAllTopicsAction } from './qa/topics/quality-assurance-topics.ac
import { RetrieveAllSourceAction } from './qa/source/quality-assurance-source.actions';
describe('NotificationsStateService', () => {
let service: SuggestionNotificationsStateService;
let service: NotificationsStateService;
let serviceAsAny: any;
let store: any;
let initialState: any;
@@ -67,14 +67,14 @@ describe('NotificationsStateService', () => {
],
providers: [
provideMockStore({ initialState }),
{ provide: SuggestionNotificationsStateService, useValue: service }
{ provide: NotificationsStateService, useValue: service }
]
}).compileComponents();
});
beforeEach(() => {
store = TestBed.get(Store);
service = new SuggestionNotificationsStateService(store);
service = new NotificationsStateService(store);
serviceAsAny = service;
spyOn(store, 'dispatch');
});
@@ -159,14 +159,14 @@ describe('NotificationsStateService', () => {
],
providers: [
provideMockStore({ initialState }),
{ provide: SuggestionNotificationsStateService, useValue: service }
{ provide: NotificationsStateService, useValue: service }
]
}).compileComponents();
});
beforeEach(() => {
store = TestBed.get(Store);
service = new SuggestionNotificationsStateService(store);
service = new NotificationsStateService(store);
serviceAsAny = service;
spyOn(store, 'dispatch');
});
@@ -255,14 +255,14 @@ describe('NotificationsStateService', () => {
],
providers: [
provideMockStore({ initialState }),
{ provide: SuggestionNotificationsStateService, useValue: service }
{ provide: NotificationsStateService, useValue: service }
]
}).compileComponents();
});
beforeEach(() => {
store = TestBed.get(Store);
service = new SuggestionNotificationsStateService(store);
service = new NotificationsStateService(store);
serviceAsAny = service;
spyOn(store, 'dispatch');
});
@@ -325,14 +325,14 @@ describe('NotificationsStateService', () => {
],
providers: [
provideMockStore({ initialState }),
{ provide: SuggestionNotificationsStateService, useValue: service }
{ provide: NotificationsStateService, useValue: service }
]
}).compileComponents();
});
beforeEach(() => {
store = TestBed.get(Store);
service = new SuggestionNotificationsStateService(store);
service = new NotificationsStateService(store);
serviceAsAny = service;
spyOn(store, 'dispatch');
});
@@ -417,14 +417,14 @@ describe('NotificationsStateService', () => {
],
providers: [
provideMockStore({ initialState }),
{ provide: SuggestionNotificationsStateService, useValue: service }
{ provide: NotificationsStateService, useValue: service }
]
}).compileComponents();
});
beforeEach(() => {
store = TestBed.get(Store);
service = new SuggestionNotificationsStateService(store);
service = new NotificationsStateService(store);
serviceAsAny = service;
spyOn(store, 'dispatch');
});
@@ -513,14 +513,14 @@ describe('NotificationsStateService', () => {
],
providers: [
provideMockStore({ initialState }),
{ provide: SuggestionNotificationsStateService, useValue: service }
{ provide: NotificationsStateService, useValue: service }
]
}).compileComponents();
});
beforeEach(() => {
store = TestBed.get(Store);
service = new SuggestionNotificationsStateService(store);
service = new NotificationsStateService(store);
serviceAsAny = service;
spyOn(store, 'dispatch');
});

View File

@@ -16,17 +16,17 @@ import {
getQualityAssuranceSourceCurrentPageSelector,
getQualityAssuranceSourceTotalsSelector
} from './selectors';
import { QualityAssuranceTopicObject } from '../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
import { SuggestionNotificationsState } from './suggestion-notifications.reducer';
import { QualityAssuranceTopicObject } from '../core/notifications/qa/models/quality-assurance-topic.model';
import { SuggestionNotificationsState } from './notifications.reducer';
import { RetrieveAllTopicsAction } from './qa/topics/quality-assurance-topics.actions';
import { QualityAssuranceSourceObject } from '../core/suggestion-notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceObject } from '../core/notifications/qa/models/quality-assurance-source.model';
import { RetrieveAllSourceAction } from './qa/source/quality-assurance-source.actions';
/**
* The service handling the Notifications State.
*/
@Injectable()
export class SuggestionNotificationsStateService {
export class NotificationsStateService {
/**
* Initialize the service variables.

View File

@@ -8,16 +8,16 @@ import { SharedModule } from '../shared/shared.module';
import { storeModuleConfig } from '../app.reducer';
import { QualityAssuranceTopicsComponent } from './qa/topics/quality-assurance-topics.component';
import { QualityAssuranceEventsComponent } from './qa/events/quality-assurance-events.component';
import { SuggestionNotificationsStateService } from './suggestion-notifications-state.service';
import { suggestionNotificationsReducers, SuggestionNotificationsState } from './suggestion-notifications.reducer';
import { suggestionNotificationsEffects } from './suggestion-notifications-effects';
import { NotificationsStateService } from './notifications-state.service';
import { suggestionNotificationsReducers, SuggestionNotificationsState } from './notifications.reducer';
import { notificationsEffects } from './notifications-effects';
import { QualityAssuranceTopicsService } from './qa/topics/quality-assurance-topics.service';
import {
QualityAssuranceTopicDataService
} from '../core/suggestion-notifications/qa/topics/quality-assurance-topic-data.service';
} from '../core/notifications/qa/topics/quality-assurance-topic-data.service';
import {
QualityAssuranceEventDataService
} from '../core/suggestion-notifications/qa/events/quality-assurance-event-data.service';
} from '../core/notifications/qa/events/quality-assurance-event-data.service';
import { ProjectEntryImportModalComponent } from './qa/project-entry-import-modal/project-entry-import-modal.component';
import { TranslateModule } from '@ngx-translate/core';
import { SearchModule } from '../shared/search/search.module';
@@ -25,7 +25,7 @@ import { QualityAssuranceSourceComponent } from './qa/source/quality-assurance-s
import { QualityAssuranceSourceService } from './qa/source/quality-assurance-source.service';
import {
QualityAssuranceSourceDataService
} from '../core/suggestion-notifications/qa/source/quality-assurance-source-data.service';
} from '../core/notifications/qa/source/quality-assurance-source-data.service';
const MODULES = [
CommonModule,
@@ -33,7 +33,7 @@ const MODULES = [
SearchModule,
CoreModule.forRoot(),
StoreModule.forFeature('suggestionNotifications', suggestionNotificationsReducers, storeModuleConfig as StoreConfig<SuggestionNotificationsState, Action>),
EffectsModule.forFeature(suggestionNotificationsEffects),
EffectsModule.forFeature(notificationsEffects),
TranslateModule
];
@@ -50,7 +50,7 @@ const ENTRY_COMPONENTS = [
];
const PROVIDERS = [
SuggestionNotificationsStateService,
NotificationsStateService,
QualityAssuranceTopicsService,
QualityAssuranceSourceService,
QualityAssuranceTopicDataService,
@@ -82,5 +82,5 @@ const PROVIDERS = [
/**
* This module handles all components that are necessary for the OpenAIRE components
*/
export class SuggestionNotificationsModule {
export class NotificationsModule {
}

View File

@@ -48,13 +48,14 @@
</td>
<td><a *ngIf="eventElement?.target"
target="_blank"
rel="noopener noreferrer"
[routerLink]="['/items', eventElement?.target?.id]">{{eventElement.title}}</a>
<span *ngIf="!eventElement?.target">{{eventElement.title}}</span>
</td>
<td *ngIf="showTopic.indexOf('/PID') !== -1">
<p><span class="small">{{'quality-assurance.event.table.pidtype' | translate}}</span>&nbsp;<span class="badge badge-info">{{eventElement.event.message.type}}</span></p>
<p><span class="small">{{'quality-assurance.event.table.pidvalue' | translate}}</span><br>
<a *ngIf="hasPIDHref(eventElement.event.message); else noPID" href="{{getPIDHref(eventElement.event.message)}}" target="_blank">
<a *ngIf="hasPIDHref(eventElement.event.message); else noPID" href="{{getPIDHref(eventElement.event.message)}}" rel="noopener noreferrer" target="_blank">
{{eventElement.event.message.value}}
</a>
<ng-template #noPID><span class="badge badge-info">{{eventElement.event.message.value}}</span></ng-template>
@@ -80,7 +81,7 @@
</p>
<p>
<span class="small">{{'quality-assurance.event.table.project' | translate}}</span><br>
<a href="https://explore.openaire.eu/search/project?projectId={{ eventElement.event.message.openaireId}}" target="_blank">{{eventElement.event.message.title}}</a>
<a href="{{sourceUrlForProjectSearch}}{{ eventElement.event.message.sourceId}}" rel="noopener noreferrer" target="_blank">{{eventElement.event.message.title}}</a>
</p>
<p>
<span *ngIf="eventElement.event.message.acronym"><span class="small">{{'quality-assurance.event.table.acronym' | translate}}</span>&nbsp;<span class="badge badge-info">{{eventElement.event.message.acronym}}</span><br></span>
@@ -92,18 +93,22 @@
<hr>
<div>
{{(eventElement.hasProject ? 'quality-assurance.event.project.found' : 'quality-assurance.event.project.notFound') | translate}}
<a target="_blank" *ngIf="eventElement.hasProject" title="{{eventElement.projectTitle}}" [routerLink]="['/items', eventElement.projectId]">{{eventElement.handle}} </a>
<a target="_blank" rel="noopener noreferrer" *ngIf="eventElement.hasProject" title="{{eventElement.projectTitle}}" [routerLink]="['/items', eventElement.projectId]">{{eventElement.handle}} </a>
<div class="btn-group">
<button *ngIf="!eventElement.hasProject"
class="btn btn-outline-primary btn-sm"
[disabled]="eventElement.isRunning"
(click)="openModalLookup(eventElement); $event.stopPropagation();">
(click)="openModalLookup(eventElement); $event.stopPropagation();"
[attr.aria-label]="'quality-assurance.event.modal.project.select' | translate"
>
<i class="fas fa-search"></i>
</button>
<button *ngIf="eventElement.hasProject"
class="btn btn-outline-danger btn-sm"
[disabled]="eventElement.isRunning"
(click)="removeProject(eventElement)">
(click)="removeProject(eventElement)"
[attr.aria-label]="'quality-assurance.event.modal.project.remove' | translate"
>
<i class="fas fa-trash-alt"></i>
</button>
</div>
@@ -116,7 +121,9 @@
ngbTooltip="{{'quality-assurance.event.action.import' | translate}}"
container="body"
[disabled]="eventElement.isRunning"
(click)="modalChoice('ACCEPTED', eventElement, acceptModal)">
(click)="modalChoice('ACCEPTED', eventElement, acceptModal)"
[attr.aria-label]="'quality-assurance.event.action.import' | translate"
>
<i class="fas fa-check"></i>
</button>
<button *ngIf="showTopic.indexOf('/PROJECT') == -1"
@@ -124,21 +131,27 @@
ngbTooltip="{{'quality-assurance.event.action.accept' | translate}}"
container="body"
[disabled]="eventElement.isRunning"
(click)="executeAction('ACCEPTED', eventElement)">
(click)="executeAction('ACCEPTED', eventElement)"
[attr.aria-label]="'quality-assurance.event.action.accept' | translate"
>
<i class="fas fa-check"></i>
</button>
<button class="btn btn-outline-dark btn-sm button-width"
ngbTooltip="{{'quality-assurance.event.action.ignore' | translate}}"
container="body"
[disabled]="eventElement.isRunning"
(click)="openModal('DISCARDED', eventElement, ignoreModal)">
(click)="openModal('DISCARDED', eventElement, ignoreModal)"
[attr.aria-label]="'quality-assurance.event.action.ignore' | translate"
>
<i class="fas fa-ban"></i>
</button>
<button class="btn btn-outline-danger btn-sm button-width"
ngbTooltip="{{'quality-assurance.event.action.reject' | translate}}"
container="body"
[disabled]="eventElement.isRunning"
(click)="openModal('REJECTED', eventElement, rejectModal)">
(click)="openModal('REJECTED', eventElement, rejectModal)"
[attr.aria-label]="'quality-assurance.event.action.reject' | translate"
>
<i class="fas fa-trash-alt"></i>
</button>
</div>

View File

@@ -7,7 +7,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { of as observableOf } from 'rxjs';
import {
QualityAssuranceEventDataService
} from '../../../core/suggestion-notifications/qa/events/quality-assurance-event-data.service';
} from '../../../core/notifications/qa/events/quality-assurance-event-data.service';
import { QualityAssuranceEventsComponent } from './quality-assurance-events.component';
import {
getMockQualityAssuranceEventRestService,
@@ -26,7 +26,7 @@ import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import {
QualityAssuranceEventObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-event.model';
} from '../../../core/notifications/qa/models/quality-assurance-event.model';
import { QualityAssuranceEventData } from '../project-entry-import-modal/project-entry-import-modal.component';
import { TestScheduler } from 'rxjs/testing';
import { cold, getTestScheduler } from 'jasmine-marbles';

View File

@@ -10,12 +10,12 @@ import { SortDirection, SortOptions } from '../../../core/cache/models/sort-opti
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { RemoteData } from '../../../core/data/remote-data';
import {
OpenaireQualityAssuranceEventMessageObject,
SourceQualityAssuranceEventMessageObject,
QualityAssuranceEventObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-event.model';
} from '../../../core/notifications/qa/models/quality-assurance-event.model';
import {
QualityAssuranceEventDataService
} from '../../../core/suggestion-notifications/qa/events/quality-assurance-event-data.service';
} from '../../../core/notifications/qa/events/quality-assurance-event-data.service';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { Metadata } from '../../../core/shared/metadata.utils';
import { followLink } from '../../../shared/utils/follow-link-config.model';
@@ -30,6 +30,7 @@ import { getFirstCompletedRemoteData } from '../../../core/shared/operators';
import { PaginationService } from '../../../core/pagination/pagination.service';
import { Item } from '../../../core/shared/item.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
import {environment} from '../../../../environments/environment';
/**
* Component to display the Quality Assurance event list.
@@ -95,6 +96,10 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
* @type {boolean}
*/
public showMore = false;
/**
* The quality assurance source base url for project search
*/
public sourceUrlForProjectSearch = environment.qualityAssuranceConfig.sourceUrlForProjectSearch;
/**
* The FindListOptions object
*/
@@ -140,7 +145,6 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
return this.getQualityAssuranceEvents();
})
).subscribe((events: QualityAssuranceEventData[]) => {
console.log(events);
this.eventsUpdated$.next(events);
this.isEventPageLoading.next(false);
});
@@ -328,7 +332,7 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
* Check if the event has a valid href.
* @param event
*/
public hasPIDHref(event: OpenaireQualityAssuranceEventMessageObject): boolean {
public hasPIDHref(event: SourceQualityAssuranceEventMessageObject): boolean {
return this.getPIDHref(event) !== null;
}
@@ -336,7 +340,7 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
* Get the event pid href.
* @param event
*/
public getPIDHref(event: OpenaireQualityAssuranceEventMessageObject): string {
public getPIDHref(event: SourceQualityAssuranceEventMessageObject): string {
return event.pidHref;
}
@@ -356,7 +360,6 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
if (rd.hasSucceeded) {
this.totalElements$.next(rd.payload.totalElements);
if (rd.payload.totalElements > 0) {
console.log(rd.payload.page);
return this.fetchEvents(rd.payload.page);
} else {
return of([]);

View File

@@ -9,7 +9,7 @@
<small>{{ (labelPrefix + label + '.publication' | translate) }}</small>
<div class="mb-3">
<div class="text-truncate">
<a target="_blank" href="/items/{{(externalSourceEntry.event.target|async)?.payload?.id}}">
<a target="_blank" [routerLink]="'/items/{{(externalSourceEntry.event.target|async)?.payload?.id}}'">
{{externalSourceEntry.title}}
</a>
</div>
@@ -18,7 +18,7 @@
<small>{{ (labelPrefix + label + '.bountToLocal' |translate) }}</small>
<div class="mb-3">
<div class="text-truncate">
<a target="_blank" href="/items/{{externalSourceEntry.projectId}}">
<a target="_blank" [routerLink]="'/items/{{externalSourceEntry.projectId}}'">
{{externalSourceEntry.projectTitle}}
</a>
</div>

View File

@@ -13,9 +13,9 @@ import { PaginationComponentOptions } from '../../../shared/pagination/paginatio
import { SearchService } from '../../../core/shared/search/search.service';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
import {
OpenaireQualityAssuranceEventMessageObject,
SourceQualityAssuranceEventMessageObject,
QualityAssuranceEventObject,
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-event.model';
} from '../../../core/notifications/qa/models/quality-assurance-event.model';
import { hasValue, isNotEmpty } from '../../../shared/empty.util';
import { Item } from '../../../core/shared/item.model';
@@ -180,7 +180,7 @@ export class ProjectEntryImportModalComponent implements OnInit {
public ngOnInit(): void {
this.pagination = Object.assign(new PaginationComponentOptions(), { id: 'notifications-project-bound', pageSize: this.pageSize });
this.projectTitle = (this.externalSourceEntry.projectTitle !== null) ? this.externalSourceEntry.projectTitle
: (this.externalSourceEntry.event.message as OpenaireQualityAssuranceEventMessageObject).title;
: (this.externalSourceEntry.event.message as SourceQualityAssuranceEventMessageObject).title;
this.searchOptions = Object.assign(new PaginatedSearchOptions(
{
configuration: this.configuration,

View File

@@ -1,7 +1,7 @@
/* eslint-disable max-classes-per-file */
import { Action } from '@ngrx/store';
import { type } from '../../../shared/ngrx/type';
import { QualityAssuranceSourceObject } from '../../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceObject } from '../../../core/notifications/qa/models/quality-assurance-source.model';
/**
* For each action type in an action group, make a simple
@@ -12,9 +12,9 @@ import { QualityAssuranceSourceObject } from '../../../core/suggestion-notificat
* action types in the application are unique.
*/
export const QualityAssuranceSourceActionTypes = {
ADD_SOURCE: type('dspace/integration/suggestion-notifications/qa/ADD_SOURCE'),
RETRIEVE_ALL_SOURCE: type('dspace/integration/suggestion-notifications/qa/RETRIEVE_ALL_SOURCE'),
RETRIEVE_ALL_SOURCE_ERROR: type('dspace/integration/suggestion-notifications/qa/RETRIEVE_ALL_SOURCE_ERROR'),
ADD_SOURCE: type('dspace/integration/notifications/qa/ADD_SOURCE'),
RETRIEVE_ALL_SOURCE: type('dspace/integration/notifications/qa/RETRIEVE_ALL_SOURCE'),
RETRIEVE_ALL_SOURCE_ERROR: type('dspace/integration/notifications/qa/RETRIEVE_ALL_SOURCE_ERROR'),
};
/**

View File

@@ -11,7 +11,7 @@ import {
qualityAssuranceSourceObjectMorePid
} from '../../../shared/mocks/notifications.mock';
import { QualityAssuranceSourceComponent } from './quality-assurance-source.component';
import { SuggestionNotificationsStateService } from '../../suggestion-notifications-state.service';
import { NotificationsStateService } from '../../notifications-state.service';
import { cold } from 'jasmine-marbles';
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
import { PaginationService } from '../../../core/pagination/pagination.service';
@@ -40,7 +40,7 @@ describe('QualityAssuranceSourceComponent test suite', () => {
TestComponent,
],
providers: [
{ provide: SuggestionNotificationsStateService, useValue: mockNotificationsStateService },
{ provide: NotificationsStateService, useValue: mockNotificationsStateService },
{ provide: ActivatedRoute, useValue: { data: observableOf(activatedRouteParams), params: observableOf({}) } },
{ provide: PaginationService, useValue: paginationService },
QualityAssuranceSourceComponent

View File

@@ -3,9 +3,9 @@ import { PaginationService } from '../../../core/pagination/pagination.service';
import { Observable, Subscription } from 'rxjs';
import { distinctUntilChanged, take } from 'rxjs/operators';
import { SortOptions } from '../../../core/cache/models/sort-options.model';
import { QualityAssuranceSourceObject } from '../../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceObject } from '../../../core/notifications/qa/models/quality-assurance-source.model';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { SuggestionNotificationsStateService } from '../../suggestion-notifications-state.service';
import { NotificationsStateService } from '../../notifications-state.service';
import { AdminQualityAssuranceSourcePageParams } from '../../../admin/admin-notifications/admin-quality-assurance-source-page-component/admin-quality-assurance-source-page-resolver.service';
import { hasValue } from '../../../shared/empty.util';
@@ -50,11 +50,11 @@ export class QualityAssuranceSourceComponent implements OnInit {
/**
* Initialize the component variables.
* @param {PaginationService} paginationService
* @param {SuggestionNotificationsStateService} notificationsStateService
* @param {NotificationsStateService} notificationsStateService
*/
constructor(
private paginationService: PaginationService,
private notificationsStateService: SuggestionNotificationsStateService,
private notificationsStateService: NotificationsStateService,
) { }
/**

View File

@@ -14,13 +14,13 @@ import {
} from './quality-assurance-source.actions';
import {
QualityAssuranceSourceObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
} from '../../../core/notifications/qa/models/quality-assurance-source.model';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { QualityAssuranceSourceService } from './quality-assurance-source.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import {
QualityAssuranceSourceDataService
} from '../../../core/suggestion-notifications/qa/source/quality-assurance-source-data.service';
} from '../../../core/notifications/qa/source/quality-assurance-source-data.service';
/**
* Provides effect methods for the Quality Assurance source actions.

View File

@@ -1,4 +1,4 @@
import { QualityAssuranceSourceObject } from '../../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceObject } from '../../../core/notifications/qa/models/quality-assurance-source.model';
import { QualityAssuranceSourceActionTypes, QualityAssuranceSourceActions } from './quality-assurance-source.actions';
/**

View File

@@ -13,7 +13,7 @@ import { cold } from 'jasmine-marbles';
import { buildPaginatedList } from '../../../core/data/paginated-list.model';
import {
QualityAssuranceSourceDataService
} from '../../../core/suggestion-notifications/qa/source/quality-assurance-source-data.service';
} from '../../../core/notifications/qa/source/quality-assurance-source-data.service';
import { FindListOptions } from '../../../core/data/find-list-options.model';
describe('QualityAssuranceSourceService', () => {

View File

@@ -5,13 +5,13 @@ import { map } from 'rxjs/operators';
import {
QualityAssuranceSourceDataService
} from '../../../core/suggestion-notifications/qa/source/quality-assurance-source-data.service';
} from '../../../core/notifications/qa/source/quality-assurance-source-data.service';
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import {
QualityAssuranceSourceObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
} from '../../../core/notifications/qa/models/quality-assurance-source.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
import { getFirstCompletedRemoteData } from '../../../core/shared/operators';

View File

@@ -1,7 +1,7 @@
/* eslint-disable max-classes-per-file */
import { Action } from '@ngrx/store';
import { type } from '../../../shared/ngrx/type';
import { QualityAssuranceTopicObject } from '../../../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
import { QualityAssuranceTopicObject } from '../../../core/notifications/qa/models/quality-assurance-topic.model';
/**
* For each action type in an action group, make a simple
@@ -12,9 +12,9 @@ import { QualityAssuranceTopicObject } from '../../../core/suggestion-notificati
* action types in the application are unique.
*/
export const QualityAssuranceTopicActionTypes = {
ADD_TOPICS: type('dspace/integration/suggestion-notifications/qa/topic/ADD_TOPICS'),
RETRIEVE_ALL_TOPICS: type('dspace/integration/suggestion-notifications/qa/topic/RETRIEVE_ALL_TOPICS'),
RETRIEVE_ALL_TOPICS_ERROR: type('dspace/integration/suggestion-notifications/qa/topic/RETRIEVE_ALL_TOPICS_ERROR'),
ADD_TOPICS: type('dspace/integration/notifications/qa/topic/ADD_TOPICS'),
RETRIEVE_ALL_TOPICS: type('dspace/integration/notifications/qa/topic/RETRIEVE_ALL_TOPICS'),
RETRIEVE_ALL_TOPICS_ERROR: type('dspace/integration/notifications/qa/topic/RETRIEVE_ALL_TOPICS_ERROR'),
};
/**

View File

@@ -12,7 +12,7 @@ import {
qualityAssuranceTopicObjectMorePid
} from '../../../shared/mocks/notifications.mock';
import { QualityAssuranceTopicsComponent } from './quality-assurance-topics.component';
import { SuggestionNotificationsStateService } from '../../suggestion-notifications-state.service';
import { NotificationsStateService } from '../../notifications-state.service';
import { cold } from 'jasmine-marbles';
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
import { PaginationService } from '../../../core/pagination/pagination.service';
@@ -42,7 +42,7 @@ describe('QualityAssuranceTopicsComponent test suite', () => {
TestComponent,
],
providers: [
{ provide: SuggestionNotificationsStateService, useValue: mockNotificationsStateService },
{ provide: NotificationsStateService, useValue: mockNotificationsStateService },
{ provide: ActivatedRoute, useValue: { data: observableOf(activatedRouteParams), snapshot: {
paramMap: {
get: () => 'openaire',

View File

@@ -6,10 +6,10 @@ import { distinctUntilChanged, take } from 'rxjs/operators';
import { SortOptions } from '../../../core/cache/models/sort-options.model';
import {
QualityAssuranceTopicObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
} from '../../../core/notifications/qa/models/quality-assurance-topic.model';
import { hasValue } from '../../../shared/empty.util';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { SuggestionNotificationsStateService } from '../../suggestion-notifications-state.service';
import { NotificationsStateService } from '../../notifications-state.service';
import {
AdminQualityAssuranceTopicsPageParams
} from '../../../admin/admin-notifications/admin-quality-assurance-topics-page/admin-quality-assurance-topics-page-resolver.service';
@@ -64,13 +64,13 @@ export class QualityAssuranceTopicsComponent implements OnInit {
* Initialize the component variables.
* @param {PaginationService} paginationService
* @param {ActivatedRoute} activatedRoute
* @param {SuggestionNotificationsStateService} notificationsStateService
* @param {NotificationsStateService} notificationsStateService
* @param {QualityAssuranceTopicsService} qualityAssuranceTopicsService
*/
constructor(
private paginationService: PaginationService,
private activatedRoute: ActivatedRoute,
private notificationsStateService: SuggestionNotificationsStateService,
private notificationsStateService: NotificationsStateService,
private qualityAssuranceTopicsService: QualityAssuranceTopicsService
) {
}

View File

@@ -14,13 +14,13 @@ import {
} from './quality-assurance-topics.actions';
import {
QualityAssuranceTopicObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
} from '../../../core/notifications/qa/models/quality-assurance-topic.model';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { QualityAssuranceTopicsService } from './quality-assurance-topics.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import {
QualityAssuranceTopicDataService
} from '../../../core/suggestion-notifications/qa/topics/quality-assurance-topic-data.service';
} from '../../../core/notifications/qa/topics/quality-assurance-topic-data.service';
/**
* Provides effect methods for the Quality Assurance topics actions.

View File

@@ -1,4 +1,4 @@
import { QualityAssuranceTopicObject } from '../../../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
import { QualityAssuranceTopicObject } from '../../../core/notifications/qa/models/quality-assurance-topic.model';
import { QualityAssuranceTopicActionTypes, QualityAssuranceTopicsActions } from './quality-assurance-topics.actions';
/**

View File

@@ -4,7 +4,7 @@ import { QualityAssuranceTopicsService } from './quality-assurance-topics.servic
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
import {
QualityAssuranceTopicDataService
} from '../../../core/suggestion-notifications/qa/topics/quality-assurance-topic-data.service';
} from '../../../core/notifications/qa/topics/quality-assurance-topic-data.service';
import { PageInfo } from '../../../core/shared/page-info.model';
import {
getMockQualityAssuranceTopicRestService,

View File

@@ -3,13 +3,13 @@ import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import {
QualityAssuranceTopicDataService
} from '../../../core/suggestion-notifications/qa/topics/quality-assurance-topic-data.service';
} from '../../../core/notifications/qa/topics/quality-assurance-topic-data.service';
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import {
QualityAssuranceTopicObject
} from '../../../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
} from '../../../core/notifications/qa/models/quality-assurance-topic.model';
import { RequestParam } from '../../../core/cache/models/request-param.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
import { getFirstCompletedRemoteData } from '../../../core/shared/operators';

View File

@@ -1,12 +1,12 @@
import { createFeatureSelector, createSelector, MemoizedSelector } from '@ngrx/store';
import { subStateSelector } from '../shared/selector.util';
import { suggestionNotificationsSelector, SuggestionNotificationsState } from './suggestion-notifications.reducer';
import { QualityAssuranceTopicObject } from '../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
import { suggestionNotificationsSelector, SuggestionNotificationsState } from './notifications.reducer';
import { QualityAssuranceTopicObject } from '../core/notifications/qa/models/quality-assurance-topic.model';
import { QualityAssuranceTopicState } from './qa/topics/quality-assurance-topics.reducer';
import { QualityAssuranceSourceState } from './qa/source/quality-assurance-source.reducer';
import {
QualityAssuranceSourceObject
} from '../core/suggestion-notifications/qa/models/quality-assurance-source.model';
} from '../core/notifications/qa/models/quality-assurance-source.model';
/**
* Returns the Notifications state.

View File

@@ -2,16 +2,16 @@ import { of as observableOf } from 'rxjs';
import { ResourceType } from '../../core/shared/resource-type';
import {
QualityAssuranceTopicObject
} from '../../core/suggestion-notifications/qa/models/quality-assurance-topic.model';
} from '../../core/notifications/qa/models/quality-assurance-topic.model';
import {
QualityAssuranceEventObject
} from '../../core/suggestion-notifications/qa/models/quality-assurance-event.model';
} from '../../core/notifications/qa/models/quality-assurance-event.model';
import {
QualityAssuranceTopicDataService
} from '../../core/suggestion-notifications/qa/topics/quality-assurance-topic-data.service';
} from '../../core/notifications/qa/topics/quality-assurance-topic-data.service';
import {
QualityAssuranceEventDataService
} from '../../core/suggestion-notifications/qa/events/quality-assurance-event-data.service';
} from '../../core/notifications/qa/events/quality-assurance-event-data.service';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { Item } from '../../core/shared/item.model';
import {
@@ -22,7 +22,7 @@ import {
import { SearchResult } from '../search/models/search-result.model';
import {
QualityAssuranceSourceObject
} from '../../core/suggestion-notifications/qa/models/quality-assurance-source.model';
} from '../../core/notifications/qa/models/quality-assurance-source.model';
// REST Mock ---------------------------------------------------------------------
// -------------------------------------------------------------------------------
@@ -80,7 +80,7 @@ const ItemMockPid1: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -199,7 +199,7 @@ const ItemMockPid2: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -318,7 +318,7 @@ const ItemMockPid3: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -437,7 +437,7 @@ const ItemMockPid4: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -556,7 +556,7 @@ const ItemMockPid5: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -675,7 +675,7 @@ const ItemMockPid6: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -794,7 +794,7 @@ const ItemMockPid7: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -913,7 +913,7 @@ export const ItemMockPid8: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -1032,7 +1032,7 @@ export const ItemMockPid9: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -1151,7 +1151,7 @@ export const ItemMockPid10: Item = Object.assign(
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -1270,7 +1270,7 @@ export const NotificationsMockDspaceObject: SearchResult<DSpaceObject> = Object.
'dc.identifier.uri': [
{
language: null,
value: 'http://dspace7.4science.it/xmlui/handle/10673/6'
value: 'https://demo.dspace.org/handle/10673/6'
}
],
'dc.description.abstract': [
@@ -1476,7 +1476,7 @@ export const qualityAssuranceEventObjectMissingPid: QualityAssuranceEventObject
value: '10.18848/1447-9494/cgp/v15i09/45934',
pidHref: 'https://doi.org/10.18848/1447-9494/cgp/v15i09/45934',
abstract: null,
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1513,7 +1513,7 @@ export const qualityAssuranceEventObjectMissingPid2: QualityAssuranceEventObject
value: 'http://thesis2.sba.units.it/store/handle/item/12238',
pidHref:'http://thesis2.sba.units.it/store/handle/item/12238',
abstract: null,
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1550,7 +1550,7 @@ export const qualityAssuranceEventObjectMissingPid3: QualityAssuranceEventObject
value: '10.4324/9780203408889',
pidHref: 'https://doi.org/10.4324/9780203408889',
abstract: null,
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1587,7 +1587,7 @@ export const qualityAssuranceEventObjectMissingPid4: QualityAssuranceEventObject
value: '10.1080/13698230.2018.1430104',
pidHref: 'https://doi.org/10.1080/13698230.2018.1430104',
abstract: null,
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1624,7 +1624,7 @@ export const qualityAssuranceEventObjectMissingPid5: QualityAssuranceEventObject
value: 'http://thesis2.sba.units.it/store/handle/item/12477',
pidHref:'http://thesis2.sba.units.it/store/handle/item/12477',
abstract: null,
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1661,7 +1661,7 @@ export const qualityAssuranceEventObjectMissingPid6: QualityAssuranceEventObject
value: '10.1111/j.1475-4975.2004.00098.x',
pidHref: 'https://doi.org/10.1111/j.1475-4975.2004.00098.x',
abstract: null,
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1698,7 +1698,7 @@ export const qualityAssuranceEventObjectMissingAbstract: QualityAssuranceEventOb
value: null,
pidHref: null,
abstract: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque vestibulum tellus sed lacinia. Aenean vitae sapien a quam congue ultrices. Sed vehicula sollicitudin ligula, vitae lacinia velit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque vestibulum tellus sed lacinia. Aenean vitae sapien a quam congue ultrices. Sed vehicula sollicitudin ligula, vitae lacinia velit.',
openaireId: null,
sourceId: null,
acronym: null,
code: null,
funder: null,
@@ -1735,7 +1735,7 @@ export const qualityAssuranceEventObjectMissingProjectFound: QualityAssuranceEve
value: null,
pidHref: null,
abstract: null,
openaireId: null,
sourceId: null,
acronym: 'PAThs',
code: '687567',
funder: 'EC',
@@ -1772,7 +1772,7 @@ export const qualityAssuranceEventObjectMissingProjectNotFound: QualityAssurance
value: null,
pidHref: null,
abstract: null,
openaireId: null,
sourceId: null,
acronym: 'PAThs',
code: '687567B',
funder: 'EC',
@@ -1799,7 +1799,7 @@ export const qualityAssuranceEventObjectMissingProjectNotFound: QualityAssurance
// -------------------------------------------------------------------------------
/**
* Mock for [[SuggestionNotificationsStateService]]
* Mock for [[NotificationsStateService]]
*/
export function getMockNotificationsStateService(): any {
return jasmine.createSpyObj('NotificationsStateService', {

View File

@@ -3206,6 +3206,8 @@
"quality-assurance.event.modal.project.bound": "Bound project",
"quality-assurance.event.modal.project.remove": "Remove",
"quality-assurance.event.modal.project.placeholder": "Enter a project name",
"quality-assurance.event.modal.project.notFound": "No project found.",

View File

@@ -22,6 +22,7 @@ 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 {QualityAssuranceConfig} from './quality-assurance.config';
interface AppConfig extends Config {
ui: UIServerConfig;
@@ -48,6 +49,7 @@ interface AppConfig extends Config {
markdown: MarkdownConfig;
vocabularies: FilterVocabularyConfig[];
comcolSelectionSort: DiscoverySortConfig;
qualityAssuranceConfig: QualityAssuranceConfig;
}
/**

View File

@@ -22,6 +22,7 @@ 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 {QualityAssuranceConfig} from './quality-assurance.config';
export class DefaultAppConfig implements AppConfig {
production = false;
@@ -432,4 +433,9 @@ export class DefaultAppConfig implements AppConfig {
sortField:'dc.title',
sortDirection:'ASC',
};
qualityAssuranceConfig: QualityAssuranceConfig = {
sourceUrlForProjectSearch: 'https://explore.openaire.eu/search/project?projectId=',
pageSize: 5,
};
}

View File

@@ -0,0 +1,17 @@
import { Config } from './config.interface';
/**
* Config that determines a metadata sorting config.
* It's created mainly to sort by metadata community and collection edition and creation
*/
export class QualityAssuranceConfig implements Config {
/**
* Url for project search on quality assurance resource
*/
public sourceUrlForProjectSearch: string;
/**
* default count of QA sources to load
*/
public pageSize: number;
}

View File

@@ -306,6 +306,10 @@ export const environment: BuildConfig = {
sortField:'dc.title',
sortDirection:'ASC',
},
qualityAssuranceConfig: {
sourceUrlForProjectSearch: 'https://explore.openaire.eu/search/project?projectId=',
pageSize: 5,
},
vocabularies: [
{