mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 02:24:11 +00:00
resolve conflicts after main alignment
This commit is contained in:
@@ -313,7 +313,10 @@ export class LdnServiceFormComponent implements OnInit, OnDestroy {
|
|||||||
*/
|
*/
|
||||||
selectInboundItemFilter(filterValue: string, index: number): void {
|
selectInboundItemFilter(filterValue: string, index: number): void {
|
||||||
const filterArray = (this.formModel.get('notifyServiceInboundPatterns') as FormArray);
|
const filterArray = (this.formModel.get('notifyServiceInboundPatterns') as FormArray);
|
||||||
filterArray.controls[index].patchValue({constraint: filterValue, constraintFormatted: this.translateService.instant(filterValue + '.label')});
|
filterArray.controls[index].patchValue({
|
||||||
|
constraint: filterValue,
|
||||||
|
constraintFormatted: this.translateService.instant((filterValue !== '' ? filterValue : 'ldn.no-filter') + '.label')
|
||||||
|
});
|
||||||
filterArray.markAllAsTouched();
|
filterArray.markAllAsTouched();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,22 +6,37 @@ import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.r
|
|||||||
import { I18nBreadcrumbsService } from '../../core/breadcrumbs/i18n-breadcrumbs.service';
|
import { I18nBreadcrumbsService } from '../../core/breadcrumbs/i18n-breadcrumbs.service';
|
||||||
import { PUBLICATION_CLAIMS_PATH } from './admin-notifications-routing-paths';
|
import { PUBLICATION_CLAIMS_PATH } from './admin-notifications-routing-paths';
|
||||||
import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component';
|
import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component';
|
||||||
import { AdminNotificationsPublicationClaimPageResolver } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service';
|
|
||||||
import { QUALITY_ASSURANCE_EDIT_PATH } from './admin-notifications-routing-paths';
|
import { QUALITY_ASSURANCE_EDIT_PATH } from './admin-notifications-routing-paths';
|
||||||
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 { AdminQualityAssuranceTopicsPageResolver } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page-resolver.service';
|
|
||||||
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 {
|
import {
|
||||||
SiteAdministratorGuard
|
SiteAdministratorGuard
|
||||||
} from '../../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
|
} from '../../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
|
||||||
import { QualityAssuranceBreadcrumbResolver } from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver';
|
import { QualityAssuranceBreadcrumbResolver } from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver';
|
||||||
import { QualityAssuranceBreadcrumbService } from '../../core/breadcrumbs/quality-assurance-breadcrumb.service';
|
import { QualityAssuranceBreadcrumbService } from '../../core/breadcrumbs/quality-assurance-breadcrumb.service';
|
||||||
|
import {
|
||||||
|
QualityAssuranceEventsPageResolver
|
||||||
|
} from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.resolver';
|
||||||
|
import {
|
||||||
|
AdminNotificationsPublicationClaimPageResolver
|
||||||
|
} from '../../quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service';
|
||||||
|
import {
|
||||||
|
QualityAssuranceTopicsPageComponent
|
||||||
|
} from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page.component';
|
||||||
|
import {
|
||||||
|
QualityAssuranceTopicsPageResolver
|
||||||
|
} from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page-resolver.service';
|
||||||
|
import {
|
||||||
|
QualityAssuranceSourcePageComponent
|
||||||
|
} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page.component';
|
||||||
|
import {
|
||||||
|
QualityAssuranceSourcePageResolver
|
||||||
|
} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page-resolver.service';
|
||||||
import {
|
import {
|
||||||
SourceDataResolver
|
SourceDataResolver
|
||||||
} from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-data.resolver';
|
} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-data.resolver';
|
||||||
|
import {
|
||||||
|
QualityAssuranceEventsPageComponent
|
||||||
|
} from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.component';
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -44,11 +59,11 @@ import {
|
|||||||
{
|
{
|
||||||
canActivate: [ AuthenticatedGuard ],
|
canActivate: [ AuthenticatedGuard ],
|
||||||
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId`,
|
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId`,
|
||||||
component: AdminQualityAssuranceTopicsPageComponent,
|
component: QualityAssuranceTopicsPageComponent,
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
resolve: {
|
resolve: {
|
||||||
breadcrumb: QualityAssuranceBreadcrumbResolver,
|
breadcrumb: QualityAssuranceBreadcrumbResolver,
|
||||||
openaireQualityAssuranceTopicsParams: AdminQualityAssuranceTopicsPageResolver
|
openaireQualityAssuranceTopicsParams: QualityAssuranceTopicsPageResolver
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
title: 'admin.quality-assurance.page.title',
|
title: 'admin.quality-assurance.page.title',
|
||||||
@@ -59,11 +74,11 @@ import {
|
|||||||
{
|
{
|
||||||
canActivate: [ AuthenticatedGuard ],
|
canActivate: [ AuthenticatedGuard ],
|
||||||
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/target/:targetId`,
|
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/target/:targetId`,
|
||||||
component: AdminQualityAssuranceTopicsPageComponent,
|
component: QualityAssuranceTopicsPageComponent,
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
resolve: {
|
resolve: {
|
||||||
breadcrumb: I18nBreadcrumbResolver,
|
breadcrumb: I18nBreadcrumbResolver,
|
||||||
openaireQualityAssuranceTopicsParams: AdminQualityAssuranceTopicsPageResolver
|
openaireQualityAssuranceTopicsParams: QualityAssuranceTopicsPageResolver
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
title: 'admin.quality-assurance.page.title',
|
title: 'admin.quality-assurance.page.title',
|
||||||
@@ -74,11 +89,11 @@ import {
|
|||||||
{
|
{
|
||||||
canActivate: [ SiteAdministratorGuard ],
|
canActivate: [ SiteAdministratorGuard ],
|
||||||
path: `${QUALITY_ASSURANCE_EDIT_PATH}`,
|
path: `${QUALITY_ASSURANCE_EDIT_PATH}`,
|
||||||
component: AdminQualityAssuranceSourcePageComponent,
|
component: QualityAssuranceSourcePageComponent,
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
resolve: {
|
resolve: {
|
||||||
breadcrumb: I18nBreadcrumbResolver,
|
breadcrumb: I18nBreadcrumbResolver,
|
||||||
openaireQualityAssuranceSourceParams: AdminQualityAssuranceSourcePageResolver,
|
openaireQualityAssuranceSourceParams: QualityAssuranceSourcePageResolver,
|
||||||
sourceData: SourceDataResolver
|
sourceData: SourceDataResolver
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
@@ -90,11 +105,11 @@ import {
|
|||||||
{
|
{
|
||||||
canActivate: [ AuthenticatedGuard ],
|
canActivate: [ AuthenticatedGuard ],
|
||||||
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/:topicId`,
|
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/:topicId`,
|
||||||
component: AdminQualityAssuranceEventsPageComponent,
|
component: QualityAssuranceEventsPageComponent,
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
resolve: {
|
resolve: {
|
||||||
breadcrumb: QualityAssuranceBreadcrumbResolver,
|
breadcrumb: QualityAssuranceBreadcrumbResolver,
|
||||||
openaireQualityAssuranceEventsParams: AdminQualityAssuranceEventsPageResolver
|
openaireQualityAssuranceEventsParams: QualityAssuranceEventsPageResolver
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
title: 'admin.notifications.event.page.title',
|
title: 'admin.notifications.event.page.title',
|
||||||
@@ -109,10 +124,10 @@ import {
|
|||||||
I18nBreadcrumbsService,
|
I18nBreadcrumbsService,
|
||||||
AdminNotificationsPublicationClaimPageResolver,
|
AdminNotificationsPublicationClaimPageResolver,
|
||||||
SourceDataResolver,
|
SourceDataResolver,
|
||||||
AdminQualityAssuranceSourcePageResolver,
|
QualityAssuranceSourcePageResolver,
|
||||||
AdminQualityAssuranceTopicsPageResolver,
|
QualityAssuranceTopicsPageResolver,
|
||||||
AdminQualityAssuranceEventsPageResolver,
|
QualityAssuranceEventsPageResolver,
|
||||||
AdminQualityAssuranceSourcePageResolver,
|
QualityAssuranceSourcePageResolver,
|
||||||
QualityAssuranceBreadcrumbResolver,
|
QualityAssuranceBreadcrumbResolver,
|
||||||
QualityAssuranceBreadcrumbService
|
QualityAssuranceBreadcrumbService
|
||||||
]
|
]
|
||||||
|
@@ -4,11 +4,17 @@ import { getQualityAssuranceEditRoute } from './admin-notifications/admin-notifi
|
|||||||
|
|
||||||
export const REGISTRIES_MODULE_PATH = 'registries';
|
export const REGISTRIES_MODULE_PATH = 'registries';
|
||||||
export const NOTIFICATIONS_MODULE_PATH = 'notifications';
|
export const NOTIFICATIONS_MODULE_PATH = 'notifications';
|
||||||
|
export const LDN_PATH = 'ldn';
|
||||||
|
|
||||||
|
|
||||||
export function getRegistriesModuleRoute() {
|
export function getRegistriesModuleRoute() {
|
||||||
return new URLCombiner(getAdminModuleRoute(), REGISTRIES_MODULE_PATH).toString();
|
return new URLCombiner(getAdminModuleRoute(), REGISTRIES_MODULE_PATH).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getLdnServicesModuleRoute() {
|
||||||
|
return new URLCombiner(getAdminModuleRoute(), LDN_PATH).toString();
|
||||||
|
}
|
||||||
|
|
||||||
export function getNotificationsModuleRoute() {
|
export function getNotificationsModuleRoute() {
|
||||||
return new URLCombiner(getAdminModuleRoute(), NOTIFICATIONS_MODULE_PATH).toString();
|
return new URLCombiner(getAdminModuleRoute(), NOTIFICATIONS_MODULE_PATH).toString();
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,7 @@ import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.reso
|
|||||||
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component';
|
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component';
|
||||||
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
|
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
|
||||||
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
|
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
|
||||||
import { REGISTRIES_MODULE_PATH } from './admin-routing-paths';
|
import { LDN_PATH, NOTIFICATIONS_MODULE_PATH, REGISTRIES_MODULE_PATH } from './admin-routing-paths';
|
||||||
import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component';
|
import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component';
|
||||||
import {
|
import {
|
||||||
SiteAdministratorGuard
|
SiteAdministratorGuard
|
||||||
@@ -15,6 +15,11 @@ import {
|
|||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
|
{
|
||||||
|
path: NOTIFICATIONS_MODULE_PATH,
|
||||||
|
loadChildren: () => import('./admin-notifications/admin-notifications.module')
|
||||||
|
.then((m) => m.AdminNotificationsModule),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: REGISTRIES_MODULE_PATH,
|
path: REGISTRIES_MODULE_PATH,
|
||||||
loadChildren: () => import('./admin-registries/admin-registries.module')
|
loadChildren: () => import('./admin-registries/admin-registries.module')
|
||||||
@@ -63,6 +68,17 @@ import {
|
|||||||
data: {title: 'admin.system-wide-alert.title', breadcrumbKey: 'admin.system-wide-alert'},
|
data: {title: 'admin.system-wide-alert.title', breadcrumbKey: 'admin.system-wide-alert'},
|
||||||
canActivate: [SiteAdministratorGuard]
|
canActivate: [SiteAdministratorGuard]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: LDN_PATH,
|
||||||
|
children: [
|
||||||
|
{ path: '', pathMatch: 'full', redirectTo: 'services' },
|
||||||
|
{
|
||||||
|
path: 'services',
|
||||||
|
loadChildren: () => import('./admin-ldn-services/admin-ldn-services.module')
|
||||||
|
.then((m) => m.AdminLdnServicesModule),
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
|
@@ -2,10 +2,7 @@ import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model';
|
|||||||
import { BreadcrumbsProviderService } from './breadcrumbsProviderService';
|
import { BreadcrumbsProviderService } from './breadcrumbsProviderService';
|
||||||
import { Observable, of as observableOf } from 'rxjs';
|
import { Observable, of as observableOf } from 'rxjs';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { map } from 'rxjs/operators';
|
|
||||||
import { getFirstCompletedRemoteData } from '../shared/operators';
|
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { QualityAssuranceTopicDataService } from '../notifications/qa/topics/quality-assurance-topic-data.service';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -19,7 +16,6 @@ export class QualityAssuranceBreadcrumbService implements BreadcrumbsProviderSer
|
|||||||
|
|
||||||
private QUALITY_ASSURANCE_BREADCRUMB_KEY = 'admin.quality-assurance.breadcrumbs';
|
private QUALITY_ASSURANCE_BREADCRUMB_KEY = 'admin.quality-assurance.breadcrumbs';
|
||||||
constructor(
|
constructor(
|
||||||
protected qualityAssuranceService: QualityAssuranceTopicDataService,
|
|
||||||
private translationService: TranslateService,
|
private translationService: TranslateService,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -32,18 +28,14 @@ export class QualityAssuranceBreadcrumbService implements BreadcrumbsProviderSer
|
|||||||
* @param url The url to use as a link for this breadcrumb
|
* @param url The url to use as a link for this breadcrumb
|
||||||
*/
|
*/
|
||||||
getBreadcrumbs(key: string, url: string): Observable<Breadcrumb[]> {
|
getBreadcrumbs(key: string, url: string): Observable<Breadcrumb[]> {
|
||||||
const sourceId = key.split(':')[0];
|
const args = key.split(':');
|
||||||
const topicId = key.split(':')[2];
|
const sourceId = args[0];
|
||||||
|
const topicId = args.length > 2 ? args[args.length - 1] : args[1];
|
||||||
|
|
||||||
if (topicId) {
|
if (topicId) {
|
||||||
return this.qualityAssuranceService.getTopic(topicId).pipe(
|
return observableOf( [new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
|
||||||
getFirstCompletedRemoteData(),
|
new Breadcrumb(sourceId, `${url}${sourceId}`),
|
||||||
map((topic) => {
|
new Breadcrumb(topicId, undefined)]);
|
||||||
return [new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
|
|
||||||
new Breadcrumb(sourceId, `${url}${sourceId}`),
|
|
||||||
new Breadcrumb(topicId.replace(/[!:]/g, '/'), undefined)];
|
|
||||||
})
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
return observableOf([new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
|
return observableOf([new Breadcrumb(this.translationService.instant(this.QUALITY_ASSURANCE_BREADCRUMB_KEY), url),
|
||||||
new Breadcrumb(sourceId, `${url}${sourceId}`)]);
|
new Breadcrumb(sourceId, `${url}${sourceId}`)]);
|
||||||
|
@@ -186,8 +186,18 @@ import { ValueListBrowseDefinition } from './shared/value-list-browse-definition
|
|||||||
import { NonHierarchicalBrowseDefinition } from './shared/non-hierarchical-browse-definition';
|
import { NonHierarchicalBrowseDefinition } from './shared/non-hierarchical-browse-definition';
|
||||||
import { BulkAccessConditionOptions } from './config/models/bulk-access-condition-options.model';
|
import { BulkAccessConditionOptions } from './config/models/bulk-access-condition-options.model';
|
||||||
import { CorrectionTypeDataService } from './submission/correctiontype-data.service';
|
import { CorrectionTypeDataService } from './submission/correctiontype-data.service';
|
||||||
import { SuggestionTarget } from './suggestion-notifications/models/suggestion-target.model';
|
import { LdnServicesService } from '../admin/admin-ldn-services/ldn-services-data/ldn-services-data.service';
|
||||||
import { SuggestionSource } from './suggestion-notifications/models/suggestion-source.model';
|
import { LdnItemfiltersService } from '../admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service';
|
||||||
|
import {
|
||||||
|
CoarNotifyConfigDataService
|
||||||
|
} from '../submission/sections/section-coar-notify/coar-notify-config-data.service';
|
||||||
|
import { NotifyRequestsStatusDataService } from './data/notify-services-status-data.service';
|
||||||
|
import { SuggestionTarget } from './notifications/models/suggestion-target.model';
|
||||||
|
import { SuggestionSource } from './notifications/models/suggestion-source.model';
|
||||||
|
import { NotifyRequestsStatus } from '../item-page/simple/notify-requests-status/notify-requests-status.model';
|
||||||
|
import { LdnService } from '../admin/admin-ldn-services/ldn-services-model/ldn-services.model';
|
||||||
|
import { Itemfilter } from '../admin/admin-ldn-services/ldn-services-model/ldn-service-itemfilters';
|
||||||
|
import { SubmissionCoarNotifyConfig } from '../submission/sections/section-coar-notify/submission-coar-notify.config';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When not in production, endpoint responses can be mocked for testing purposes
|
* When not in production, endpoint responses can be mocked for testing purposes
|
||||||
@@ -311,7 +321,11 @@ const PROVIDERS = [
|
|||||||
OrcidQueueDataService,
|
OrcidQueueDataService,
|
||||||
OrcidHistoryDataService,
|
OrcidHistoryDataService,
|
||||||
SupervisionOrderDataService,
|
SupervisionOrderDataService,
|
||||||
CorrectionTypeDataService
|
CorrectionTypeDataService,
|
||||||
|
LdnServicesService,
|
||||||
|
LdnItemfiltersService,
|
||||||
|
CoarNotifyConfigDataService,
|
||||||
|
NotifyRequestsStatusDataService
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -392,7 +406,11 @@ export const models =
|
|||||||
ItemRequest,
|
ItemRequest,
|
||||||
BulkAccessConditionOptions,
|
BulkAccessConditionOptions,
|
||||||
SuggestionTarget,
|
SuggestionTarget,
|
||||||
SuggestionSource
|
SuggestionSource,
|
||||||
|
LdnService,
|
||||||
|
Itemfilter,
|
||||||
|
SubmissionCoarNotifyConfig,
|
||||||
|
NotifyRequestsStatus,
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
@@ -27,29 +27,20 @@ import {
|
|||||||
QualityAssuranceSourceDataService
|
QualityAssuranceSourceDataService
|
||||||
} from '../core/notifications/qa/source/quality-assurance-source-data.service';
|
} from '../core/notifications/qa/source/quality-assurance-source-data.service';
|
||||||
import { EPersonDataComponent } from './qa/events/ePerson-data/ePerson-data.component';
|
import { EPersonDataComponent } from './qa/events/ePerson-data/ePerson-data.component';
|
||||||
import { PublicationClaimComponent } from '../suggestion-notifications/suggestion-targets/publication-claim/publication-claim.component';
|
import { SuggestionActionsComponent } from './suggestion-actions/suggestion-actions.component';
|
||||||
import { SuggestionActionsComponent } from '../suggestion-notifications/suggestion-actions/suggestion-actions.component';
|
import { PublicationClaimComponent } from './suggestion-targets/publication-claim/publication-claim.component';
|
||||||
import {
|
import { SuggestionListElementComponent } from './suggestion-list-element/suggestion-list-element.component';
|
||||||
SuggestionListElementComponent
|
|
||||||
} from '../suggestion-notifications/suggestion-list-element/suggestion-list-element.component';
|
|
||||||
import {
|
import {
|
||||||
SuggestionEvidencesComponent
|
SuggestionEvidencesComponent
|
||||||
} from '../suggestion-notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component';
|
} from './suggestion-list-element/suggestion-evidences/suggestion-evidences.component';
|
||||||
import { SuggestionsPopupComponent } from '../suggestion-notifications/suggestions-popup/suggestions-popup.component';
|
import { SuggestionsPopupComponent } from './suggestions-popup/suggestions-popup.component';
|
||||||
import {
|
import { SuggestionsNotificationComponent } from './suggestions-notification/suggestions-notification.component';
|
||||||
SuggestionsNotificationComponent
|
import { SuggestionsService } from './suggestions.service';
|
||||||
} from '../suggestion-notifications/suggestions-notification/suggestions-notification.component';
|
import { SuggestionSourceDataService } from '../core/notifications/source/suggestion-source-data.service';
|
||||||
import { SuggestionsService } from '../suggestion-notifications/suggestions.service';
|
import { SuggestionTargetDataService } from '../core/notifications/target/suggestion-target-data.service';
|
||||||
import { SuggestionsDataService } from '../core/suggestion-notifications/suggestions-data.service';
|
import { SuggestionTargetsStateService } from './suggestion-targets/suggestion-targets.state.service';
|
||||||
import {
|
import { SuggestionsDataService } from '../core/notifications/suggestions-data.service';
|
||||||
SuggestionSourceDataService
|
|
||||||
} from '../core/suggestion-notifications/source/suggestion-source-data.service';
|
|
||||||
import {
|
|
||||||
SuggestionTargetDataService
|
|
||||||
} from '../core/suggestion-notifications/target/suggestion-target-data.service';
|
|
||||||
import {
|
|
||||||
SuggestionTargetsStateService
|
|
||||||
} from '../suggestion-notifications/suggestion-targets/suggestion-targets.state.service';
|
|
||||||
|
|
||||||
|
|
||||||
const MODULES = [
|
const MODULES = [
|
||||||
|
@@ -26,7 +26,7 @@ import {
|
|||||||
ProjectEntryImportModalComponent,
|
ProjectEntryImportModalComponent,
|
||||||
QualityAssuranceEventData
|
QualityAssuranceEventData
|
||||||
} from '../project-entry-import-modal/project-entry-import-modal.component';
|
} from '../project-entry-import-modal/project-entry-import-modal.component';
|
||||||
import { getFirstCompletedRemoteData } from '../../../core/shared/operators';
|
import { getFirstCompletedRemoteData, getRemoteDataPayload } from '../../../core/shared/operators';
|
||||||
import { PaginationService } from '../../../core/pagination/pagination.service';
|
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||||
import { Item } from '../../../core/shared/item.model';
|
import { Item } from '../../../core/shared/item.model';
|
||||||
import { FindListOptions } from '../../../core/data/find-list-options.model';
|
import { FindListOptions } from '../../../core/data/find-list-options.model';
|
||||||
@@ -34,6 +34,8 @@ import { AuthorizationDataService } from '../../../core/data/feature-authorizati
|
|||||||
import { FeatureID } from '../../../core/data/feature-authorization/feature-id';
|
import { FeatureID } from '../../../core/data/feature-authorization/feature-id';
|
||||||
import { NoContent } from '../../../core/shared/NoContent.model';
|
import { NoContent } from '../../../core/shared/NoContent.model';
|
||||||
import { environment } from '../../../../environments/environment';
|
import { environment } from '../../../../environments/environment';
|
||||||
|
import { getItemPageRoute } from '../../../item-page/item-page-routing-paths';
|
||||||
|
import { ItemDataService } from '../../../core/data/item-data.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component to display the Quality Assurance event list.
|
* Component to display the Quality Assurance event list.
|
||||||
@@ -119,6 +121,22 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
|
|||||||
*/
|
*/
|
||||||
protected subs: Subscription[] = [];
|
protected subs: Subscription[] = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The target item id, retrieved from the topic-id composition.
|
||||||
|
*/
|
||||||
|
public targetId: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URL of the item page/target.
|
||||||
|
*/
|
||||||
|
public itemPageUrl: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plain topic name (without the source id)
|
||||||
|
*/
|
||||||
|
public selectedTopicName: string;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Observable that emits a boolean value indicating whether the user is an admin.
|
* Observable that emits a boolean value indicating whether the user is an admin.
|
||||||
*/
|
*/
|
||||||
@@ -132,6 +150,8 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
|
|||||||
* @param {QualityAssuranceEventDataService} qualityAssuranceEventRestService
|
* @param {QualityAssuranceEventDataService} qualityAssuranceEventRestService
|
||||||
* @param {PaginationService} paginationService
|
* @param {PaginationService} paginationService
|
||||||
* @param {TranslateService} translateService
|
* @param {TranslateService} translateService
|
||||||
|
* @param authorizationService
|
||||||
|
* @param itemService
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
private activatedRoute: ActivatedRoute,
|
private activatedRoute: ActivatedRoute,
|
||||||
@@ -141,6 +161,7 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
|
|||||||
private paginationService: PaginationService,
|
private paginationService: PaginationService,
|
||||||
private translateService: TranslateService,
|
private translateService: TranslateService,
|
||||||
private authorizationService: AuthorizationDataService,
|
private authorizationService: AuthorizationDataService,
|
||||||
|
private itemService: ItemDataService,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,6 +182,10 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
|
|||||||
const regEx = /!/g;
|
const regEx = /!/g;
|
||||||
this.showTopic = id.replace(regEx, '/');
|
this.showTopic = id.replace(regEx, '/');
|
||||||
this.topic = id;
|
this.topic = id;
|
||||||
|
const splitList = this.showTopic?.split(':');
|
||||||
|
this.targetId = splitList.length > 2 ? splitList.pop() : null;
|
||||||
|
this.selectedTopicName = splitList[1];
|
||||||
|
this.sourceId = splitList[0];
|
||||||
return this.getQualityAssuranceEvents();
|
return this.getQualityAssuranceEvents();
|
||||||
})
|
})
|
||||||
).subscribe(
|
).subscribe(
|
||||||
@@ -471,4 +496,21 @@ export class QualityAssuranceEventsComponent implements OnInit, OnDestroy {
|
|||||||
delete(qaEvent: QualityAssuranceEventData): Observable<RemoteData<NoContent>> {
|
delete(qaEvent: QualityAssuranceEventData): Observable<RemoteData<NoContent>> {
|
||||||
return this.qualityAssuranceEventRestService.deleteQAEvent(qaEvent);
|
return this.qualityAssuranceEventRestService.deleteQAEvent(qaEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an Observable that emits the title of the target item.
|
||||||
|
* The target item is retrieved by its ID using the itemService.
|
||||||
|
* The title is extracted from the first metadata value of the item.
|
||||||
|
* The item page URL is also set in the component.
|
||||||
|
* @returns An Observable that emits the title of the target item.
|
||||||
|
*/
|
||||||
|
public getTargetItemTitle(): Observable<string> {
|
||||||
|
return this.itemService.findById(this.targetId).pipe(
|
||||||
|
take(1),
|
||||||
|
getFirstCompletedRemoteData(),
|
||||||
|
getRemoteDataPayload(),
|
||||||
|
tap((item: Item) => this.itemPageUrl = getItemPageRoute(item)),
|
||||||
|
map((item: Item) => item.firstMetadataValue('dc.title'))
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,9 +10,7 @@ import {
|
|||||||
import { hasValue } from '../../../shared/empty.util';
|
import { hasValue } from '../../../shared/empty.util';
|
||||||
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
|
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
|
||||||
import { NotificationsStateService } from '../../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';
|
|
||||||
import { PaginationService } from '../../../core/pagination/pagination.service';
|
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { ItemDataService } from '../../../core/data/item-data.service';
|
import { ItemDataService } from '../../../core/data/item-data.service';
|
||||||
@@ -20,6 +18,9 @@ import { getFirstCompletedRemoteData, getRemoteDataPayload } from '../../../core
|
|||||||
import { Item } from '../../../core/shared/item.model';
|
import { Item } from '../../../core/shared/item.model';
|
||||||
import { getItemPageRoute } from '../../../item-page/item-page-routing-paths';
|
import { getItemPageRoute } from '../../../item-page/item-page-routing-paths';
|
||||||
import { getNotificatioQualityAssuranceRoute } from '../../../admin/admin-routing-paths';
|
import { getNotificatioQualityAssuranceRoute } from '../../../admin/admin-routing-paths';
|
||||||
|
import {
|
||||||
|
QualityAssuranceTopicsPageParams
|
||||||
|
} from '../../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page-resolver.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component to display the Quality Assurance topic list.
|
* Component to display the Quality Assurance topic list.
|
||||||
@@ -79,8 +80,9 @@ export class QualityAssuranceTopicsComponent implements OnInit, OnDestroy, After
|
|||||||
* Initialize the component variables.
|
* Initialize the component variables.
|
||||||
* @param {PaginationService} paginationService
|
* @param {PaginationService} paginationService
|
||||||
* @param {ActivatedRoute} activatedRoute
|
* @param {ActivatedRoute} activatedRoute
|
||||||
|
* @param itemService
|
||||||
* @param {NotificationsStateService} notificationsStateService
|
* @param {NotificationsStateService} notificationsStateService
|
||||||
* @param {QualityAssuranceTopicsService} qualityAssuranceTopicsService
|
* @param router
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
private paginationService: PaginationService,
|
private paginationService: PaginationService,
|
||||||
@@ -163,7 +165,7 @@ export class QualityAssuranceTopicsComponent implements OnInit, OnDestroy, After
|
|||||||
*
|
*
|
||||||
* @param eventsRouteParams
|
* @param eventsRouteParams
|
||||||
*/
|
*/
|
||||||
protected updatePaginationFromRouteParams(eventsRouteParams: AdminQualityAssuranceTopicsPageParams) {
|
protected updatePaginationFromRouteParams(eventsRouteParams: QualityAssuranceTopicsPageParams) {
|
||||||
if (eventsRouteParams.currentPage) {
|
if (eventsRouteParams.currentPage) {
|
||||||
this.paginationConfig.currentPage = eventsRouteParams.currentPage;
|
this.paginationConfig.currentPage = eventsRouteParams.currentPage;
|
||||||
}
|
}
|
||||||
|
@@ -286,6 +286,7 @@ import { QualityAssuranceEventDataService } from '../core/notifications/qa/event
|
|||||||
import { QualityAssuranceSourceDataService } from '../core/notifications/qa/source/quality-assurance-source-data.service';
|
import { QualityAssuranceSourceDataService } from '../core/notifications/qa/source/quality-assurance-source-data.service';
|
||||||
import { DynamicComponentLoaderDirective } from './abstract-component-loader/dynamic-component-loader.directive';
|
import { DynamicComponentLoaderDirective } from './abstract-component-loader/dynamic-component-loader.directive';
|
||||||
import { StartsWithLoaderComponent } from './starts-with/starts-with-loader.component';
|
import { StartsWithLoaderComponent } from './starts-with/starts-with-loader.component';
|
||||||
|
import { IpV4Validator } from './utils/ipV4.validator';
|
||||||
|
|
||||||
const MODULES = [
|
const MODULES = [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
@@ -496,6 +497,7 @@ const DIRECTIVES = [
|
|||||||
HoverClassDirective,
|
HoverClassDirective,
|
||||||
ContextHelpDirective,
|
ContextHelpDirective,
|
||||||
DynamicComponentLoaderDirective,
|
DynamicComponentLoaderDirective,
|
||||||
|
IpV4Validator,
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
@@ -141,9 +141,9 @@ export class SubmissionSectionCoarNotifyComponent extends SectionModelComponent
|
|||||||
this.operationsBuilder.flushOperation(this.pathCombiner.getPath([pattern, '-']));
|
this.operationsBuilder.flushOperation(this.pathCombiner.getPath([pattern, '-']));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasPrevValueStored || (selectedService?.id && hasPrevValueStored)) {
|
if (!hasPrevValueStored || (selectedService?.id && hasPrevValueStored) || (!hasValue(selectedService) && hasPrevValueStored)) {
|
||||||
// add the path when there is no previous value stored
|
// add the path when there is no previous value stored
|
||||||
this.operationsBuilder.add(this.pathCombiner.getPath([pattern, '-']), [selectedService.id], false, true);
|
this.operationsBuilder.add(this.pathCombiner.getPath([pattern, '-']), hasValue(selectedService) ? [selectedService.id] : [], false, true);
|
||||||
}
|
}
|
||||||
// set the previous value to the new value
|
// set the previous value to the new value
|
||||||
this.previousServices[pattern].services[index] = this.ldnServiceByPattern[pattern].services[index];
|
this.previousServices[pattern].services[index] = this.ldnServiceByPattern[pattern].services[index];
|
||||||
|
@@ -6097,4 +6097,6 @@
|
|||||||
"filter.search.text.placeholder": "Search text",
|
"filter.search.text.placeholder": "Search text",
|
||||||
|
|
||||||
"advancesearch.form.submit": "Add",
|
"advancesearch.form.submit": "Add",
|
||||||
|
|
||||||
|
"ldn.no-filter.label": "None",
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user