mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 18:14:17 +00:00
[CST-5418] Use different param for notifications and errors in the parseSaveResponse method
This commit is contained in:
@@ -419,7 +419,8 @@ export class SaveSubmissionFormSuccessAction implements Action {
|
||||
payload: {
|
||||
submissionId: string;
|
||||
submissionObject: SubmissionObject[];
|
||||
notify?: boolean
|
||||
showNotifications?: boolean;
|
||||
showErrors?: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -429,9 +430,13 @@ export class SaveSubmissionFormSuccessAction implements Action {
|
||||
* the submission's ID
|
||||
* @param submissionObject
|
||||
* the submission's Object
|
||||
* @param showNotifications
|
||||
* a boolean representing if to show notifications on save
|
||||
* @param showErrors
|
||||
* a boolean representing if to show errors on save
|
||||
*/
|
||||
constructor(submissionId: string, submissionObject: SubmissionObject[], notify?: boolean) {
|
||||
this.payload = { submissionId, submissionObject, notify };
|
||||
constructor(submissionId: string, submissionObject: SubmissionObject[], showNotifications?: boolean, showErrors?: boolean) {
|
||||
this.payload = { submissionId, submissionObject, showNotifications, showErrors };
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -237,6 +237,7 @@ describe('SubmissionObjectEffects test suite', () => {
|
||||
b: new SaveSubmissionFormSuccessAction(
|
||||
submissionId,
|
||||
mockSubmissionRestResponse as any,
|
||||
true,
|
||||
true
|
||||
)
|
||||
});
|
||||
@@ -260,6 +261,7 @@ describe('SubmissionObjectEffects test suite', () => {
|
||||
b: new SaveSubmissionFormSuccessAction(
|
||||
submissionId,
|
||||
mockSubmissionRestResponse as any,
|
||||
false,
|
||||
false
|
||||
)
|
||||
});
|
||||
@@ -911,7 +913,7 @@ describe('SubmissionObjectEffects test suite', () => {
|
||||
submissionJsonPatchOperationsServiceStub.jsonPatchByResourceType.and.returnValue(observableOf(response));
|
||||
|
||||
const expected = cold('--b-', {
|
||||
b: new SaveSubmissionFormSuccessAction(submissionId, response as any[], false)
|
||||
b: new SaveSubmissionFormSuccessAction(submissionId, response as any[], false, true)
|
||||
});
|
||||
|
||||
expect(submissionObjectEffects.saveAndDeposit$).toBeObservable(expected);
|
||||
|
@@ -125,7 +125,7 @@ export class SubmissionObjectEffects {
|
||||
this.submissionService.getSubmissionObjectLinkName(),
|
||||
action.payload.submissionId,
|
||||
'sections').pipe(
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, action.payload.isManual)),
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, action.payload.isManual, action.payload.isManual)),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
})));
|
||||
|
||||
@@ -151,7 +151,8 @@ export class SubmissionObjectEffects {
|
||||
withLatestFrom(this.store$),
|
||||
map(([action, currentState]: [SaveSubmissionFormSuccessAction, any]) => {
|
||||
return this.parseSaveResponse((currentState.submission as SubmissionState).objects[action.payload.submissionId],
|
||||
action.payload.submissionObject, action.payload.submissionId, currentState.forms, action.payload.notify);
|
||||
action.payload.submissionObject, action.payload.submissionId, currentState.forms,
|
||||
action.payload.showNotifications, action.payload.showErrors);
|
||||
}),
|
||||
mergeMap((actions) => observableFrom(actions))));
|
||||
|
||||
@@ -164,7 +165,7 @@ export class SubmissionObjectEffects {
|
||||
withLatestFrom(this.store$),
|
||||
map(([action, currentState]: [SaveSubmissionSectionFormSuccessAction, any]) => {
|
||||
return this.parseSaveResponse((currentState.submission as SubmissionState).objects[action.payload.submissionId],
|
||||
action.payload.submissionObject, action.payload.submissionId, currentState.forms, false);
|
||||
action.payload.submissionObject, action.payload.submissionId, currentState.forms, false, false);
|
||||
}),
|
||||
mergeMap((actions) => observableFrom(actions))));
|
||||
|
||||
@@ -221,7 +222,7 @@ export class SubmissionObjectEffects {
|
||||
null,
|
||||
true
|
||||
);
|
||||
return new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, false);
|
||||
return new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, false, true);
|
||||
}
|
||||
}),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
@@ -367,18 +368,23 @@ export class SubmissionObjectEffects {
|
||||
* A boolean that indicate if show notification or not
|
||||
* @return SubmissionObjectAction[]
|
||||
* List of SubmissionObjectAction to dispatch
|
||||
* @param showNotifications
|
||||
* A boolean representing if to show notifications on save
|
||||
* @param showErrors
|
||||
* A boolean representing if to show errors on save
|
||||
*/
|
||||
protected parseSaveResponse(
|
||||
currentState: SubmissionObjectEntry,
|
||||
response: SubmissionObject[],
|
||||
submissionId: string,
|
||||
forms: FormState,
|
||||
notify: boolean = true): SubmissionObjectAction[] {
|
||||
showNotifications: boolean = true,
|
||||
showErrors: boolean = true): SubmissionObjectAction[] {
|
||||
|
||||
const mappedActions = [];
|
||||
|
||||
if (isNotEmpty(response)) {
|
||||
if (notify) {
|
||||
if (showNotifications) {
|
||||
this.notificationsService.success(null, this.translate.get('submission.sections.general.save_success_notice'));
|
||||
}
|
||||
|
||||
@@ -390,7 +396,7 @@ export class SubmissionObjectEffects {
|
||||
if (errors && !isEmpty(errors)) {
|
||||
// to avoid dispatching an action for every error, create an array of errors per section
|
||||
errorsList = parseSectionErrors(errors);
|
||||
if (notify) {
|
||||
if (showNotifications) {
|
||||
this.notificationsService.warning(null, this.translate.get('submission.sections.general.sections_not_valid'));
|
||||
}
|
||||
}
|
||||
@@ -409,12 +415,12 @@ export class SubmissionObjectEffects {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (notify && !currentState.sections[sectionId].enabled) {
|
||||
if (showNotifications && !currentState.sections[sectionId].enabled) {
|
||||
this.submissionService.notifyNewSection(submissionId, sectionId, currentState.sections[sectionId].sectionType);
|
||||
}
|
||||
|
||||
const sectionForm = getForm(forms, currentState, sectionId);
|
||||
const filteredErrors = filterErrors(sectionForm, sectionErrors, currentState.sections[sectionId].sectionType, notify);
|
||||
const filteredErrors = filterErrors(sectionForm, sectionErrors, currentState.sections[sectionId].sectionType, showErrors);
|
||||
mappedActions.push(new UpdateSectionDataAction(submissionId, sectionId, sectionData, filteredErrors, sectionErrors));
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user