Skip to content

Commit 47a907c

Browse files
Merge branch 'main' into coar-notify-7
2 parents aaf0ce2 + 0d63a85 commit 47a907c

56 files changed

Lines changed: 1172 additions & 359 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.
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import { URLCombiner } from '../../core/url-combiner/url-combiner';
2-
import { getNotificationsModuleRoute } from '../admin-routing-paths';
31

42
export const QUALITY_ASSURANCE_EDIT_PATH = 'quality-assurance';
53
export const PUBLICATION_CLAIMS_PATH = 'publication-claim';
64

7-
export function getQualityAssuranceRoute(id: string) {
8-
return new URLCombiner(getNotificationsModuleRoute(), QUALITY_ASSURANCE_EDIT_PATH, id).toString();
5+
export function getQualityAssuranceEditRoute() {
6+
return `/${QUALITY_ASSURANCE_EDIT_PATH}`;
97
}

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

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,22 @@ import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.r
66
import { I18nBreadcrumbsService } from '../../core/breadcrumbs/i18n-breadcrumbs.service';
77
import { PUBLICATION_CLAIMS_PATH } from './admin-notifications-routing-paths';
88
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';
910
import { QUALITY_ASSURANCE_EDIT_PATH } from './admin-notifications-routing-paths';
11+
import { AdminQualityAssuranceTopicsPageComponent } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page.component';
12+
import { AdminQualityAssuranceEventsPageComponent } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.component';
13+
import { AdminQualityAssuranceTopicsPageResolver } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page-resolver.service';
14+
import { AdminQualityAssuranceEventsPageResolver } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.resolver';
15+
import { AdminQualityAssuranceSourcePageComponent } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page.component';
16+
import { AdminQualityAssuranceSourcePageResolver } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page-resolver.service';
17+
import {
18+
SiteAdministratorGuard
19+
} from '../../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
1020
import { QualityAssuranceBreadcrumbResolver } from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver';
1121
import { QualityAssuranceBreadcrumbService } from '../../core/breadcrumbs/quality-assurance-breadcrumb.service';
12-
import {
13-
AdminNotificationsPublicationClaimPageResolver
14-
} from '../../quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service';
15-
import {
16-
QualityAssuranceTopicsPageComponent
17-
} from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page.component';
18-
import {
19-
QualityAssuranceTopicsPageResolver
20-
} from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page-resolver.service';
2122
import {
2223
SourceDataResolver
23-
} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-data.resolver';
24-
import {
25-
QualityAssuranceEventsPageResolver
26-
} from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.resolver';
27-
import {
28-
QualityAssuranceEventsPageComponent
29-
} from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.component';
30-
import {
31-
QualityAssuranceSourcePageResolver
32-
} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page-resolver.service';
33-
import {
34-
QualityAssuranceSourcePageComponent
35-
} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page.component';
36-
24+
} from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-data.resolver';
3725

3826
@NgModule({
3927
imports: [
@@ -56,11 +44,11 @@ import {
5644
{
5745
canActivate: [ AuthenticatedGuard ],
5846
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId`,
59-
component: QualityAssuranceTopicsPageComponent,
47+
component: AdminQualityAssuranceTopicsPageComponent,
6048
pathMatch: 'full',
6149
resolve: {
6250
breadcrumb: QualityAssuranceBreadcrumbResolver,
63-
openaireQualityAssuranceTopicsParams: QualityAssuranceTopicsPageResolver
51+
openaireQualityAssuranceTopicsParams: AdminQualityAssuranceTopicsPageResolver
6452
},
6553
data: {
6654
title: 'admin.quality-assurance.page.title',
@@ -70,12 +58,27 @@ import {
7058
},
7159
{
7260
canActivate: [ AuthenticatedGuard ],
61+
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/target/:targetId`,
62+
component: AdminQualityAssuranceTopicsPageComponent,
63+
pathMatch: 'full',
64+
resolve: {
65+
breadcrumb: I18nBreadcrumbResolver,
66+
openaireQualityAssuranceTopicsParams: AdminQualityAssuranceTopicsPageResolver
67+
},
68+
data: {
69+
title: 'admin.quality-assurance.page.title',
70+
breadcrumbKey: 'admin.quality-assurance',
71+
showBreadcrumbsFluid: false
72+
}
73+
},
74+
{
75+
canActivate: [ SiteAdministratorGuard ],
7376
path: `${QUALITY_ASSURANCE_EDIT_PATH}`,
74-
component: QualityAssuranceSourcePageComponent,
77+
component: AdminQualityAssuranceSourcePageComponent,
7578
pathMatch: 'full',
7679
resolve: {
7780
breadcrumb: I18nBreadcrumbResolver,
78-
openaireQualityAssuranceSourceParams: QualityAssuranceSourcePageResolver,
81+
openaireQualityAssuranceSourceParams: AdminQualityAssuranceSourcePageResolver,
7982
sourceData: SourceDataResolver
8083
},
8184
data: {
@@ -87,11 +90,11 @@ import {
8790
{
8891
canActivate: [ AuthenticatedGuard ],
8992
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/:topicId`,
90-
component: QualityAssuranceEventsPageComponent,
93+
component: AdminQualityAssuranceEventsPageComponent,
9194
pathMatch: 'full',
9295
resolve: {
9396
breadcrumb: QualityAssuranceBreadcrumbResolver,
94-
openaireQualityAssuranceEventsParams: QualityAssuranceEventsPageResolver
97+
openaireQualityAssuranceEventsParams: AdminQualityAssuranceEventsPageResolver
9598
},
9699
data: {
97100
title: 'admin.notifications.event.page.title',
@@ -106,10 +109,10 @@ import {
106109
I18nBreadcrumbsService,
107110
AdminNotificationsPublicationClaimPageResolver,
108111
SourceDataResolver,
109-
QualityAssuranceSourcePageResolver,
110-
QualityAssuranceTopicsPageResolver,
111-
QualityAssuranceEventsPageResolver,
112-
QualityAssuranceSourcePageResolver,
112+
AdminQualityAssuranceSourcePageResolver,
113+
AdminQualityAssuranceTopicsPageResolver,
114+
AdminQualityAssuranceEventsPageResolver,
115+
AdminQualityAssuranceSourcePageResolver,
113116
QualityAssuranceBreadcrumbResolver,
114117
QualityAssuranceBreadcrumbService
115118
]
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,18 @@
11
import { URLCombiner } from '../core/url-combiner/url-combiner';
22
import { getAdminModuleRoute } from '../app-routing-paths';
3-
import { getQualityAssuranceEditRoute } from '../quality-assurance-notifications-pages/notifications-pages-routing-paths';
3+
import { getQualityAssuranceEditRoute } from './admin-notifications/admin-notifications-routing-paths';
44

55
export const REGISTRIES_MODULE_PATH = 'registries';
66
export const NOTIFICATIONS_MODULE_PATH = 'notifications';
77

8-
export const LDN_PATH = 'ldn';
9-
108
export function getRegistriesModuleRoute() {
119
return new URLCombiner(getAdminModuleRoute(), REGISTRIES_MODULE_PATH).toString();
1210
}
1311

14-
export function getLdnServicesModuleRoute() {
15-
return new URLCombiner(getAdminModuleRoute(), LDN_PATH).toString();
12+
export function getNotificationsModuleRoute() {
13+
return new URLCombiner(getAdminModuleRoute(), NOTIFICATIONS_MODULE_PATH).toString();
1614
}
1715

1816
export function getNotificatioQualityAssuranceRoute() {
1917
return new URLCombiner(`/${NOTIFICATIONS_MODULE_PATH}`, getQualityAssuranceEditRoute()).toString();
2018
}
21-
22-
23-
export function getNotificationsModuleRoute() {
24-
return new URLCombiner(getAdminModuleRoute(), NOTIFICATIONS_MODULE_PATH).toString();
25-
}

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

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,72 +6,64 @@ import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.reso
66
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component';
77
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
88
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
9-
import { LDN_PATH, NOTIFICATIONS_MODULE_PATH, REGISTRIES_MODULE_PATH } from './admin-routing-paths';
9+
import { REGISTRIES_MODULE_PATH } from './admin-routing-paths';
1010
import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component';
11-
import { NotifyInfoGuard } from '../core/coar-notify/notify-info/notify-info.guard';
11+
import {
12+
SiteAdministratorGuard
13+
} from '../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
1214

1315
@NgModule({
1416
imports: [
1517
RouterModule.forChild([
16-
{
17-
path: NOTIFICATIONS_MODULE_PATH,
18-
loadChildren: () => import('./admin-notifications/admin-notifications.module')
19-
.then((m) => m.AdminNotificationsModule),
20-
},
2118
{
2219
path: REGISTRIES_MODULE_PATH,
2320
loadChildren: () => import('./admin-registries/admin-registries.module')
2421
.then((m) => m.AdminRegistriesModule),
22+
canActivate: [SiteAdministratorGuard]
2523
},
2624
{
2725
path: 'search',
2826
resolve: { breadcrumb: I18nBreadcrumbResolver },
2927
component: AdminSearchPageComponent,
30-
data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' }
28+
data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' },
29+
canActivate: [SiteAdministratorGuard]
3130
},
3231
{
3332
path: 'workflow',
3433
resolve: { breadcrumb: I18nBreadcrumbResolver },
3534
component: AdminWorkflowPageComponent,
36-
data: { title: 'admin.workflow.title', breadcrumbKey: 'admin.workflow' }
35+
data: { title: 'admin.workflow.title', breadcrumbKey: 'admin.workflow' },
36+
canActivate: [SiteAdministratorGuard]
3737
},
3838
{
3939
path: 'curation-tasks',
4040
resolve: { breadcrumb: I18nBreadcrumbResolver },
4141
component: AdminCurationTasksComponent,
42-
data: { title: 'admin.curation-tasks.title', breadcrumbKey: 'admin.curation-tasks' }
42+
data: { title: 'admin.curation-tasks.title', breadcrumbKey: 'admin.curation-tasks' },
43+
canActivate: [SiteAdministratorGuard]
4344
},
4445
{
4546
path: 'metadata-import',
4647
resolve: { breadcrumb: I18nBreadcrumbResolver },
4748
component: MetadataImportPageComponent,
48-
data: { title: 'admin.metadata-import.title', breadcrumbKey: 'admin.metadata-import' }
49+
data: { title: 'admin.metadata-import.title', breadcrumbKey: 'admin.metadata-import' },
50+
canActivate: [SiteAdministratorGuard]
4951
},
5052
{
5153
path: 'batch-import',
5254
resolve: { breadcrumb: I18nBreadcrumbResolver },
5355
component: BatchImportPageComponent,
54-
data: { title: 'admin.batch-import.title', breadcrumbKey: 'admin.batch-import' }
55-
},
56-
{
57-
path: LDN_PATH,
58-
children: [
59-
{ path: '', pathMatch: 'full', redirectTo: 'services' },
60-
{
61-
path: 'services',
62-
loadChildren: () => import('./admin-ldn-services/admin-ldn-services.module')
63-
.then((m) => m.AdminLdnServicesModule),
64-
}
65-
],
66-
canActivate: [NotifyInfoGuard]
56+
data: { title: 'admin.batch-import.title', breadcrumbKey: 'admin.batch-import' },
57+
canActivate: [SiteAdministratorGuard]
6758
},
6859
{
6960
path: 'system-wide-alert',
7061
resolve: { breadcrumb: I18nBreadcrumbResolver },
7162
loadChildren: () => import('../system-wide-alert/system-wide-alert.module').then((m) => m.SystemWideAlertModule),
72-
data: {title: 'admin.system-wide-alert.title', breadcrumbKey: 'admin.system-wide-alert'}
63+
data: {title: 'admin.system-wide-alert.title', breadcrumbKey: 'admin.system-wide-alert'},
64+
canActivate: [SiteAdministratorGuard]
7365
},
74-
]),
66+
])
7567
],
7668
providers: [
7769
I18nBreadcrumbResolver,

src/app/app-routing-paths.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,10 @@ export const SUBSCRIPTIONS_MODULE_PATH = 'subscriptions';
133133
export function getSubscriptionsModuleRoute() {
134134
return `/${SUBSCRIPTIONS_MODULE_PATH}`;
135135
}
136+
137+
export const EDIT_ITEM_PATH = 'edit-items';
138+
export function getEditItemPageRoute() {
139+
return `/${EDIT_ITEM_PATH}`;
140+
}
141+
export const CORRECTION_TYPE_PATH = 'corrections';
142+

src/app/app-routing.module.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ import { RouterModule, NoPreloading } from '@angular/router';
33
import { AuthBlockingGuard } from './core/auth/auth-blocking.guard';
44

55
import { AuthenticatedGuard } from './core/auth/authenticated.guard';
6-
import {
7-
SiteAdministratorGuard
8-
} from './core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
96
import {
107
ACCESS_CONTROL_MODULE_PATH,
118
ADMIN_MODULE_PATH,
@@ -157,7 +154,13 @@ import { ForgotPasswordCheckGuard } from './core/rest-property/forgot-password-c
157154
path: ADMIN_MODULE_PATH,
158155
loadChildren: () => import('./admin/admin.module')
159156
.then((m) => m.AdminModule),
160-
canActivate: [SiteAdministratorGuard, EndUserAgreementCurrentUserGuard]
157+
canActivate: [EndUserAgreementCurrentUserGuard]
158+
},
159+
{
160+
path: NOTIFICATIONS_MODULE_PATH,
161+
loadChildren: () => import('./admin/admin-notifications/admin-notifications.module')
162+
.then((m) => m.AdminNotificationsModule),
163+
canActivate: [AuthenticatedGuard, EndUserAgreementCurrentUserGuard]
161164
},
162165
{
163166
path: NOTIFICATIONS_MODULE_PATH,
@@ -251,7 +254,7 @@ import { ForgotPasswordCheckGuard } from './core/rest-property/forgot-password-c
251254
.then((m) => m.SubscriptionsPageRoutingModule),
252255
canActivate: [AuthenticatedGuard]
253256
},
254-
{ path: '**', pathMatch: 'full', component: ThemedPageNotFoundComponent },
257+
{ path: '**', pathMatch: 'full', component: ThemedPageNotFoundComponent }
255258
]
256259
}
257260
], {

src/app/core/breadcrumbs/quality-assurance-breadcrumb.service.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model';
22
import { BreadcrumbsProviderService } from './breadcrumbsProviderService';
33
import { Observable, of as observableOf } from 'rxjs';
44
import { Injectable } from '@angular/core';
5+
import { map } from 'rxjs/operators';
6+
import { getFirstCompletedRemoteData } from '../shared/operators';
57
import { TranslateService } from '@ngx-translate/core';
8+
import { QualityAssuranceTopicDataService } from '../notifications/qa/topics/quality-assurance-topic-data.service';
69

710

811

@@ -16,6 +19,7 @@ export class QualityAssuranceBreadcrumbService implements BreadcrumbsProviderSer
1619

1720
private QUALITY_ASSURANCE_BREADCRUMB_KEY = 'admin.quality-assurance.breadcrumbs';
1821
constructor(
22+
protected qualityAssuranceService: QualityAssuranceTopicDataService,
1923
private translationService: TranslateService,
2024
) {
2125

@@ -28,14 +32,18 @@ export class QualityAssuranceBreadcrumbService implements BreadcrumbsProviderSer
2832
* @param url The url to use as a link for this breadcrumb
2933
*/
3034
getBreadcrumbs(key: string, url: string): Observable<Breadcrumb[]> {
31-
const args = key.split(':');
32-
const sourceId = args[0];
33-
const topicId = args.length > 2 ? args[args.length - 1] : args[1];
35+
const sourceId = key.split(':')[0];
36+
const topicId = key.split(':')[2];
3437

3538
if (topicId) {
36-
return observableOf( [new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
39+
return this.qualityAssuranceService.getTopic(topicId).pipe(
40+
getFirstCompletedRemoteData(),
41+
map((topic) => {
42+
return [new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
3743
new Breadcrumb(sourceId, `${url}${sourceId}`),
38-
new Breadcrumb(topicId, undefined)]);
44+
new Breadcrumb(topicId.replace(/[!:]/g, '/'), undefined)];
45+
})
46+
);
3947
} else {
4048
return observableOf([new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
4149
new Breadcrumb(sourceId, `${url}${sourceId}`)]);

src/app/core/core.module.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -185,19 +185,9 @@ import { FlatBrowseDefinition } from './shared/flat-browse-definition.model';
185185
import { ValueListBrowseDefinition } from './shared/value-list-browse-definition.model';
186186
import { NonHierarchicalBrowseDefinition } from './shared/non-hierarchical-browse-definition';
187187
import { BulkAccessConditionOptions } from './config/models/bulk-access-condition-options.model';
188-
import { LdnServicesService } from '../admin/admin-ldn-services/ldn-services-data/ldn-services-data.service';
189-
import { LdnService } from '../admin/admin-ldn-services/ldn-services-model/ldn-services.model';
190-
import { LdnItemfiltersService } from '../admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service';
191-
import { Itemfilter } from '../admin/admin-ldn-services/ldn-services-model/ldn-service-itemfilters';
192-
import {
193-
CoarNotifyConfigDataService
194-
} from '../submission/sections/section-coar-notify/coar-notify-config-data.service';
195-
import { SubmissionCoarNotifyConfig } from '../submission/sections/section-coar-notify/submission-coar-notify.config';
196-
import { NotifyRequestsStatus } from '../item-page/simple/notify-requests-status/notify-requests-status.model';
197-
import { NotifyRequestsStatusDataService } from './data/notify-services-status-data.service';
198-
import { SuggestionTarget } from './notifications/models/suggestion-target.model';
199-
import { SuggestionSource } from './notifications/models/suggestion-source.model';
200-
188+
import { CorrectionTypeDataService } from './submission/correctiontype-data.service';
189+
import { SuggestionTarget } from './suggestion-notifications/models/suggestion-target.model';
190+
import { SuggestionSource } from './suggestion-notifications/models/suggestion-source.model';
201191

202192
/**
203193
* When not in production, endpoint responses can be mocked for testing purposes
@@ -321,10 +311,7 @@ const PROVIDERS = [
321311
OrcidQueueDataService,
322312
OrcidHistoryDataService,
323313
SupervisionOrderDataService,
324-
LdnServicesService,
325-
LdnItemfiltersService,
326-
CoarNotifyConfigDataService,
327-
NotifyRequestsStatusDataService
314+
CorrectionTypeDataService
328315
];
329316

330317
/**
@@ -405,11 +392,7 @@ export const models =
405392
ItemRequest,
406393
BulkAccessConditionOptions,
407394
SuggestionTarget,
408-
SuggestionSource,
409-
LdnService,
410-
Itemfilter,
411-
SubmissionCoarNotifyConfig,
412-
NotifyRequestsStatus,
395+
SuggestionSource
413396
];
414397

415398
@NgModule({

0 commit comments

Comments
 (0)