mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 10:34:15 +00:00
merge CST-5337
This commit is contained in:
@@ -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: [
|
||||
|
@@ -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,
|
||||
|
@@ -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]);
|
@@ -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 {
|
||||
|
@@ -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';
|
||||
|
@@ -34,4 +34,5 @@ export enum FeatureID {
|
||||
CanEditItem = 'canEditItem',
|
||||
CanRegisterDOI = 'canRegisterDOI',
|
||||
CanSubscribe = 'canSubscribeDso',
|
||||
CanSeeQA = 'canSeeQA'
|
||||
}
|
||||
|
@@ -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
|
@@ -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'
|
||||
|
@@ -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
|
||||
];
|
@@ -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');
|
||||
});
|
@@ -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.
|
@@ -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 {
|
||||
}
|
@@ -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> <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> <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>
|
@@ -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';
|
@@ -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([]);
|
@@ -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>
|
@@ -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,
|
@@ -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'),
|
||||
};
|
||||
|
||||
/**
|
@@ -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
|
@@ -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,
|
||||
) { }
|
||||
|
||||
/**
|
@@ -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.
|
@@ -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';
|
||||
|
||||
/**
|
@@ -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', () => {
|
@@ -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';
|
||||
|
@@ -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'),
|
||||
};
|
||||
|
||||
/**
|
@@ -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',
|
@@ -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
|
||||
) {
|
||||
}
|
@@ -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.
|
@@ -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';
|
||||
|
||||
/**
|
@@ -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,
|
@@ -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';
|
@@ -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.
|
@@ -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', {
|
||||
|
@@ -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.",
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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,
|
||||
};
|
||||
}
|
||||
|
17
src/config/quality-assurance.config.ts
Normal file
17
src/config/quality-assurance.config.ts
Normal 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;
|
||||
}
|
@@ -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: [
|
||||
{
|
||||
|
Reference in New Issue
Block a user