mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-19 07:53:02 +00:00
Merge remote-tracking branch 'origin/main' into fix-versioning-button
This commit is contained in:
@@ -1,27 +1,59 @@
|
||||
import {Injectable} from '@angular/core';
|
||||
import {Actions, createEffect, ofType} from '@ngrx/effects';
|
||||
import {Store} from '@ngrx/store';
|
||||
import {TranslateService} from '@ngx-translate/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import {
|
||||
Actions,
|
||||
createEffect,
|
||||
ofType,
|
||||
} from '@ngrx/effects';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import findKey from 'lodash/findKey';
|
||||
import isEqual from 'lodash/isEqual';
|
||||
import union from 'lodash/union';
|
||||
import {
|
||||
from as observableFrom,
|
||||
Observable,
|
||||
of as observableOf,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
catchError,
|
||||
filter,
|
||||
map,
|
||||
mergeMap,
|
||||
switchMap,
|
||||
take,
|
||||
tap,
|
||||
withLatestFrom,
|
||||
} from 'rxjs/operators';
|
||||
|
||||
import {from as observableFrom, Observable, of as observableOf} from 'rxjs';
|
||||
import {catchError, filter, map, mergeMap, switchMap, take, tap, withLatestFrom} from 'rxjs/operators';
|
||||
import {SubmissionObject} from '../../core/submission/models/submission-object.model';
|
||||
import {WorkflowItem} from '../../core/submission/models/workflowitem.model';
|
||||
import {WorkspaceitemSectionUploadObject} from '../../core/submission/models/workspaceitem-section-upload.model';
|
||||
import {WorkspaceitemSectionsObject} from '../../core/submission/models/workspaceitem-sections.model';
|
||||
import {WorkspaceItem} from '../../core/submission/models/workspaceitem.model';
|
||||
import {SubmissionJsonPatchOperationsService} from '../../core/submission/submission-json-patch-operations.service';
|
||||
import {isEmpty, isNotEmpty, isNotUndefined} from '../../shared/empty.util';
|
||||
import {NotificationsService} from '../../shared/notifications/notifications.service';
|
||||
import {SectionsType} from '../sections/sections-type';
|
||||
import {SectionsService} from '../sections/sections.service';
|
||||
import {SubmissionState} from '../submission.reducers';
|
||||
import {SubmissionService} from '../submission.service';
|
||||
import { environment } from '../../../environments/environment';
|
||||
import { RemoteData } from '../../core/data/remote-data';
|
||||
import { Item } from '../../core/shared/item.model';
|
||||
import { getFirstSucceededRemoteDataPayload } from '../../core/shared/operators';
|
||||
import { SubmissionObject } from '../../core/submission/models/submission-object.model';
|
||||
import { WorkflowItem } from '../../core/submission/models/workflowitem.model';
|
||||
import { WorkspaceItem } from '../../core/submission/models/workspaceitem.model';
|
||||
import { WorkspaceitemSectionDuplicatesObject } from '../../core/submission/models/workspaceitem-section-duplicates.model';
|
||||
import { WorkspaceitemSectionUploadObject } from '../../core/submission/models/workspaceitem-section-upload.model';
|
||||
import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model';
|
||||
import { SubmissionJsonPatchOperationsService } from '../../core/submission/submission-json-patch-operations.service';
|
||||
import { SubmissionObjectDataService } from '../../core/submission/submission-object-data.service';
|
||||
import { WorkspaceitemDataService } from '../../core/submission/workspaceitem-data.service';
|
||||
import {
|
||||
isEmpty,
|
||||
isNotEmpty,
|
||||
isNotUndefined,
|
||||
} from '../../shared/empty.util';
|
||||
import { FormState } from '../../shared/form/form.reducer';
|
||||
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
||||
import { followLink } from '../../shared/utils/follow-link-config.model';
|
||||
import { SectionsService } from '../sections/sections.service';
|
||||
import { SectionsType } from '../sections/sections-type';
|
||||
import { SubmissionState } from '../submission.reducers';
|
||||
import { SubmissionService } from '../submission.service';
|
||||
import parseSectionErrorPaths, { SectionErrorPath } from '../utils/parseSectionErrorPaths';
|
||||
import parseSectionErrors from '../utils/parseSectionErrors';
|
||||
import {
|
||||
CleanDuplicateDetectionAction,
|
||||
CompleteInitSubmissionFormAction,
|
||||
DepositSubmissionAction,
|
||||
DepositSubmissionErrorAction,
|
||||
@@ -44,21 +76,10 @@ import {
|
||||
SubmissionObjectActionTypes,
|
||||
UpdateSectionDataAction,
|
||||
UpdateSectionDataSuccessAction,
|
||||
CleanDuplicateDetectionAction
|
||||
} from './submission-objects.actions';
|
||||
import { SubmissionObjectEntry } from './submission-objects.reducer';
|
||||
import { Item } from '../../core/shared/item.model';
|
||||
import { RemoteData } from '../../core/data/remote-data';
|
||||
import { getFirstSucceededRemoteDataPayload } from '../../core/shared/operators';
|
||||
import { SubmissionObjectDataService } from '../../core/submission/submission-object-data.service';
|
||||
import { followLink } from '../../shared/utils/follow-link-config.model';
|
||||
import parseSectionErrorPaths, { SectionErrorPath } from '../utils/parseSectionErrorPaths';
|
||||
import { FormState } from '../../shared/form/form.reducer';
|
||||
import { SubmissionSectionObject } from './submission-section-object.model';
|
||||
import { SubmissionSectionError } from './submission-section-error.model';
|
||||
import { WorkspaceitemDataService } from '../../core/submission/workspaceitem-data.service';
|
||||
import { WorkspaceitemSectionDuplicatesObject } from '../../core/submission/models/workspaceitem-section-duplicates.model';
|
||||
import { environment } from '../../../environments/environment';
|
||||
import { SubmissionSectionObject } from './submission-section-object.model';
|
||||
|
||||
@Injectable()
|
||||
export class SubmissionObjectEffects {
|
||||
@@ -99,8 +120,8 @@ export class SubmissionObjectEffects {
|
||||
sectionDefinition.visibility,
|
||||
enabled,
|
||||
sectionData,
|
||||
sectionErrors
|
||||
)
|
||||
sectionErrors,
|
||||
),
|
||||
);
|
||||
});
|
||||
return { action: action, definition: definition, mappedActions: mappedActions };
|
||||
@@ -108,7 +129,7 @@ export class SubmissionObjectEffects {
|
||||
mergeMap((result) => {
|
||||
return observableFrom(
|
||||
result.mappedActions.concat(
|
||||
new CompleteInitSubmissionFormAction(result.action.payload.submissionId)
|
||||
new CompleteInitSubmissionFormAction(result.action.payload.submissionId),
|
||||
));
|
||||
})));
|
||||
|
||||
@@ -125,7 +146,7 @@ export class SubmissionObjectEffects {
|
||||
action.payload.submissionDefinition,
|
||||
action.payload.sections,
|
||||
action.payload.item,
|
||||
null
|
||||
null,
|
||||
))));
|
||||
|
||||
/**
|
||||
@@ -138,8 +159,8 @@ export class SubmissionObjectEffects {
|
||||
this.submissionService.getSubmissionObjectLinkName(),
|
||||
action.payload.submissionId,
|
||||
'sections').pipe(
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, action.payload.isManual, action.payload.isManual)),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, action.payload.isManual, action.payload.isManual)),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
})));
|
||||
|
||||
/**
|
||||
@@ -152,8 +173,8 @@ export class SubmissionObjectEffects {
|
||||
this.submissionService.getSubmissionObjectLinkName(),
|
||||
action.payload.submissionId,
|
||||
'sections').pipe(
|
||||
map((response: SubmissionObject[]) => new SaveForLaterSubmissionFormSuccessAction(action.payload.submissionId, response)),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
map((response: SubmissionObject[]) => new SaveForLaterSubmissionFormSuccessAction(action.payload.submissionId, response)),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
})));
|
||||
|
||||
/**
|
||||
@@ -193,8 +214,8 @@ export class SubmissionObjectEffects {
|
||||
action.payload.submissionId,
|
||||
'sections',
|
||||
action.payload.sectionId).pipe(
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionSectionFormSuccessAction(action.payload.submissionId, response)),
|
||||
catchError(() => observableOf(new SaveSubmissionSectionFormErrorAction(action.payload.submissionId))));
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionSectionFormSuccessAction(action.payload.submissionId, response)),
|
||||
catchError(() => observableOf(new SaveSubmissionSectionFormErrorAction(action.payload.submissionId))));
|
||||
})));
|
||||
|
||||
/**
|
||||
@@ -221,7 +242,7 @@ export class SubmissionObjectEffects {
|
||||
} else {
|
||||
response$ = this.submissionObjectService.findById(action.payload.submissionId, false, true, followLink('item'), followLink('collection')).pipe(
|
||||
getFirstSucceededRemoteDataPayload(),
|
||||
map((submissionObject: SubmissionObject) => [submissionObject])
|
||||
map((submissionObject: SubmissionObject) => [submissionObject]),
|
||||
);
|
||||
}
|
||||
return response$.pipe(
|
||||
@@ -233,7 +254,7 @@ export class SubmissionObjectEffects {
|
||||
null,
|
||||
this.translate.instant('submission.sections.general.cannot_deposit'),
|
||||
null,
|
||||
true
|
||||
true,
|
||||
);
|
||||
return new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, false, true);
|
||||
}
|
||||
@@ -250,7 +271,7 @@ export class SubmissionObjectEffects {
|
||||
switchMap(([action, state]: [DepositSubmissionAction, any]) => {
|
||||
return this.submissionService.depositSubmission(state.submission.objects[action.payload.submissionId].selfUrl).pipe(
|
||||
map(() => new DepositSubmissionSuccessAction(action.payload.submissionId)),
|
||||
catchError((error) => observableOf(new DepositSubmissionErrorAction(action.payload.submissionId))));
|
||||
catchError((error: unknown) => observableOf(new DepositSubmissionErrorAction(action.payload.submissionId))));
|
||||
})));
|
||||
|
||||
/**
|
||||
@@ -302,7 +323,7 @@ export class SubmissionObjectEffects {
|
||||
if (section.sectionType === SectionsType.SubmissionForm) {
|
||||
const submissionObject$ = this.submissionObjectService
|
||||
.findById(action.payload.submissionId, true, false, followLink('item')).pipe(
|
||||
getFirstSucceededRemoteDataPayload()
|
||||
getFirstSucceededRemoteDataPayload(),
|
||||
);
|
||||
|
||||
const item$ = submissionObject$.pipe(
|
||||
@@ -313,7 +334,7 @@ export class SubmissionObjectEffects {
|
||||
return item$.pipe(
|
||||
map((item: Item) => item.metadata),
|
||||
filter((metadata) => !isEqual(action.payload.data, metadata)),
|
||||
map((metadata: any) => new UpdateSectionDataAction(action.payload.submissionId, action.payload.sectionId, metadata, action.payload.errorsToShow, action.payload.serverValidationErrors, action.payload.metadata))
|
||||
map((metadata: any) => new UpdateSectionDataAction(action.payload.submissionId, action.payload.sectionId, metadata, action.payload.errorsToShow, action.payload.serverValidationErrors, action.payload.metadata)),
|
||||
);
|
||||
} else {
|
||||
return observableOf(new UpdateSectionDataSuccessAction());
|
||||
|
Reference in New Issue
Block a user