Skip to content

Commit eb433c8

Browse files
authored
Merge pull request DSpace#1638 from 4Science/CST-5249_suggestion
Openaire suggestions (publication claim)
2 parents e1c639e + 75f5462 commit eb433c8

107 files changed

Lines changed: 6494 additions & 135 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

config/config.example.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ cache:
7575
anonymousCache:
7676
# Maximum number of pages to cache. Default is zero (0) which means anonymous user cache is disabled.
7777
# As all pages are cached in server memory, increasing this value will increase memory needs.
78-
# Individual cached pages are usually small (<100KB), so a value of max=1000 would only require ~100MB of memory.
78+
# Individual cached pages are usually small (<100KB), so a value of max=1000 would only require ~100MB of memory.
7979
max: 0
8080
# Amount of time after which cached pages are considered stale (in ms). After becoming stale, the cached
8181
# copy is automatically refreshed on the next request.
@@ -382,7 +382,13 @@ vocabularies:
382382
vocabulary: 'srsc'
383383
enabled: true
384384

385-
# Default collection/community sorting order at Advanced search, Create/update community and collection when there are not a query.
385+
# Default collection/community sorting order at Advanced search, Create/update community and collection when there are not a query.
386386
comcolSelectionSort:
387387
sortField: 'dc.title'
388388
sortDirection: 'ASC'
389+
390+
# Example of fallback collection for suggestions import
391+
# suggestion:
392+
# - collectionId: 8f7df5ca-f9c2-47a4-81ec-8a6393d6e5af
393+
# source: "openaire"
394+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { Injectable } from '@angular/core';
2+
import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';
3+
4+
/**
5+
* Interface for the route parameters.
6+
*/
7+
export interface AdminNotificationsPublicationClaimPageParams {
8+
pageId?: string;
9+
pageSize?: number;
10+
currentPage?: number;
11+
}
12+
13+
/**
14+
* This class represents a resolver that retrieve the route data before the route is activated.
15+
*/
16+
@Injectable()
17+
export class AdminNotificationsPublicationClaimPageResolver implements Resolve<AdminNotificationsPublicationClaimPageParams> {
18+
19+
/**
20+
* Method for resolving the parameters in the current route.
21+
* @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot
22+
* @param {RouterStateSnapshot} state The current RouterStateSnapshot
23+
* @returns AdminNotificationsSuggestionTargetsPageParams Emits the route parameters
24+
*/
25+
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): AdminNotificationsPublicationClaimPageParams {
26+
return {
27+
pageId: route.queryParams.pageId,
28+
pageSize: parseInt(route.queryParams.pageSize, 10),
29+
currentPage: parseInt(route.queryParams.page, 10)
30+
};
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<ds-publication-claim [source]="'openaire'"></ds-publication-claim>

src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.scss

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page.component';
4+
import { NO_ERRORS_SCHEMA } from '@angular/core';
5+
import { CommonModule } from '@angular/common';
6+
import { TranslateModule } from '@ngx-translate/core';
7+
8+
describe('AdminNotificationsPublicationClaimPageComponent', () => {
9+
let component: AdminNotificationsPublicationClaimPageComponent;
10+
let fixture: ComponentFixture<AdminNotificationsPublicationClaimPageComponent>;
11+
12+
beforeEach(async(() => {
13+
TestBed.configureTestingModule({
14+
imports: [
15+
CommonModule,
16+
TranslateModule.forRoot()
17+
],
18+
declarations: [
19+
AdminNotificationsPublicationClaimPageComponent
20+
],
21+
providers: [
22+
AdminNotificationsPublicationClaimPageComponent
23+
],
24+
schemas: [NO_ERRORS_SCHEMA]
25+
})
26+
.compileComponents();
27+
}));
28+
29+
beforeEach(() => {
30+
fixture = TestBed.createComponent(AdminNotificationsPublicationClaimPageComponent);
31+
component = fixture.componentInstance;
32+
fixture.detectChanges();
33+
});
34+
35+
it('should create', () => {
36+
expect(component).toBeTruthy();
37+
});
38+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { Component } from '@angular/core';
2+
3+
@Component({
4+
selector: 'ds-admin-notifications-publication-claim-page',
5+
templateUrl: './admin-notifications-publication-claim-page.component.html',
6+
styleUrls: ['./admin-notifications-publication-claim-page.component.scss']
7+
})
8+
export class AdminNotificationsPublicationClaimPageComponent {
9+
10+
}

src/app/admin/admin-notifications/admin-notifications-routing-paths.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { URLCombiner } from '../../core/url-combiner/url-combiner';
22
import { getNotificationsModuleRoute } from '../admin-routing-paths';
33

44
export const QUALITY_ASSURANCE_EDIT_PATH = 'quality-assurance';
5+
export const PUBLICATION_CLAIMS_PATH = 'publication-claim';
56

67
export function getQualityAssuranceRoute(id: string) {
78
return new URLCombiner(getNotificationsModuleRoute(), QUALITY_ASSURANCE_EDIT_PATH, id).toString();

src/app/admin/admin-notifications/admin-notifications-routing.module.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import { RouterModule } from '@angular/router';
44
import { AuthenticatedGuard } from '../../core/auth/authenticated.guard';
55
import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
66
import { I18nBreadcrumbsService } from '../../core/breadcrumbs/i18n-breadcrumbs.service';
7+
import { PUBLICATION_CLAIMS_PATH } from './admin-notifications-routing-paths';
8+
import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component';
9+
import { AdminNotificationsPublicationClaimPageResolver } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service';
710
import { QUALITY_ASSURANCE_EDIT_PATH } from './admin-notifications-routing-paths';
811
import { AdminQualityAssuranceTopicsPageComponent } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page.component';
912
import { AdminQualityAssuranceEventsPageComponent } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.component';
@@ -20,6 +23,21 @@ import {
2023
@NgModule({
2124
imports: [
2225
RouterModule.forChild([
26+
{
27+
canActivate: [ AuthenticatedGuard ],
28+
path: `${PUBLICATION_CLAIMS_PATH}`,
29+
component: AdminNotificationsPublicationClaimPageComponent,
30+
pathMatch: 'full',
31+
resolve: {
32+
breadcrumb: I18nBreadcrumbResolver,
33+
suggestionTargetParams: AdminNotificationsPublicationClaimPageResolver
34+
},
35+
data: {
36+
title: 'admin.notifications.publicationclaim.page.title',
37+
breadcrumbKey: 'admin.notifications.publicationclaim',
38+
showBreadcrumbsFluid: false
39+
}
40+
},
2341
{
2442
canActivate: [ AuthenticatedGuard ],
2543
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId`,
@@ -71,7 +89,9 @@ import {
7189
providers: [
7290
I18nBreadcrumbResolver,
7391
I18nBreadcrumbsService,
92+
AdminNotificationsPublicationClaimPageResolver,
7493
SourceDataResolver,
94+
AdminQualityAssuranceSourcePageResolver,
7595
AdminQualityAssuranceTopicsPageResolver,
7696
AdminQualityAssuranceEventsPageResolver,
7797
AdminQualityAssuranceSourcePageResolver,

src/app/admin/admin-notifications/admin-notifications.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import { NgModule } from '@angular/core';
33
import { CoreModule } from '../../core/core.module';
44
import { SharedModule } from '../../shared/shared.module';
55
import { AdminNotificationsRoutingModule } from './admin-notifications-routing.module';
6+
import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component';
67
import { AdminQualityAssuranceTopicsPageComponent } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page.component';
78
import { AdminQualityAssuranceEventsPageComponent } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.component';
89
import { AdminQualityAssuranceSourcePageComponent } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page.component';
9-
import {NotificationsModule} from '../../notifications/notifications.module';
10+
import { NotificationsModule } from '../../notifications/notifications.module';
1011

1112
@NgModule({
1213
imports: [
@@ -17,6 +18,7 @@ import {NotificationsModule} from '../../notifications/notifications.module';
1718
NotificationsModule
1819
],
1920
declarations: [
21+
AdminNotificationsPublicationClaimPageComponent,
2022
AdminQualityAssuranceTopicsPageComponent,
2123
AdminQualityAssuranceEventsPageComponent,
2224
AdminQualityAssuranceSourcePageComponent

src/app/app-routing.module.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {
3838
ThemedPageInternalServerErrorComponent
3939
} from './page-internal-server-error/themed-page-internal-server-error.component';
4040
import { ServerCheckGuard } from './core/server-check/server-check.guard';
41+
import { SUGGESTION_MODULE_PATH } from './suggestions-page/suggestions-page-routing-paths';
4142
import { MenuResolver } from './menu.resolver';
4243
import { ThemedPageErrorComponent } from './page-error/themed-page-error.component';
4344
import { ForgotPasswordCheckGuard } from './core/rest-property/forgot-password-check-guard.guard';
@@ -206,6 +207,11 @@ import { ForgotPasswordCheckGuard } from './core/rest-property/forgot-password-c
206207
.then((m) => m.ProcessPageModule),
207208
canActivate: [AuthenticatedGuard, EndUserAgreementCurrentUserGuard]
208209
},
210+
{ path: SUGGESTION_MODULE_PATH,
211+
loadChildren: () => import('./suggestions-page/suggestions-page.module')
212+
.then((m) => m.SuggestionsPageModule),
213+
canActivate: [AuthenticatedGuard, EndUserAgreementCurrentUserGuard]
214+
},
209215
{
210216
path: INFO_MODULE_PATH,
211217
loadChildren: () => import('./info/info.module').then((m) => m.InfoModule)

0 commit comments

Comments
 (0)