mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-18 07:23:03 +00:00
[835] Auto-save in new Item Submission form breaks the form
Notifications are enable only for manual submission savings.
This commit is contained in:
@@ -368,6 +368,7 @@ export class SaveSubmissionFormAction implements Action {
|
||||
type = SubmissionObjectActionTypes.SAVE_SUBMISSION_FORM;
|
||||
payload: {
|
||||
submissionId: string;
|
||||
isManual?: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -376,8 +377,8 @@ export class SaveSubmissionFormAction implements Action {
|
||||
* @param submissionId
|
||||
* the submission's ID
|
||||
*/
|
||||
constructor(submissionId: string) {
|
||||
this.payload = { submissionId };
|
||||
constructor(submissionId: string, isManual: boolean = false) {
|
||||
this.payload = { submissionId, isManual };
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -211,6 +211,52 @@ describe('SubmissionObjectEffects test suite', () => {
|
||||
expect(submissionObjectEffects.saveSubmission$).toBeObservable(expected);
|
||||
});
|
||||
|
||||
it('should enable notifications if is manual', () => {
|
||||
actions = hot('--a-', {
|
||||
a: {
|
||||
type: SubmissionObjectActionTypes.SAVE_SUBMISSION_FORM,
|
||||
payload: {
|
||||
submissionId: submissionId,
|
||||
isManual: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
submissionJsonPatchOperationsServiceStub.jsonPatchByResourceType.and.returnValue(observableOf(mockSubmissionRestResponse));
|
||||
const expected = cold('--b-', {
|
||||
b: new SaveSubmissionFormSuccessAction(
|
||||
submissionId,
|
||||
mockSubmissionRestResponse as any,
|
||||
true
|
||||
)
|
||||
});
|
||||
|
||||
expect(submissionObjectEffects.saveSubmission$).toBeObservable(expected);
|
||||
});
|
||||
|
||||
it('should disable notifications if is not manual', () => {
|
||||
actions = hot('--a-', {
|
||||
a: {
|
||||
type: SubmissionObjectActionTypes.SAVE_SUBMISSION_FORM,
|
||||
payload: {
|
||||
submissionId: submissionId,
|
||||
isManual: false
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
submissionJsonPatchOperationsServiceStub.jsonPatchByResourceType.and.returnValue(observableOf(mockSubmissionRestResponse));
|
||||
const expected = cold('--b-', {
|
||||
b: new SaveSubmissionFormSuccessAction(
|
||||
submissionId,
|
||||
mockSubmissionRestResponse as any,
|
||||
false
|
||||
)
|
||||
});
|
||||
|
||||
expect(submissionObjectEffects.saveSubmission$).toBeObservable(expected);
|
||||
});
|
||||
|
||||
it('should return a SAVE_SUBMISSION_FORM_ERROR action on error', () => {
|
||||
actions = hot('--a-', {
|
||||
a: {
|
||||
|
@@ -132,7 +132,7 @@ export class SubmissionObjectEffects {
|
||||
this.submissionService.getSubmissionObjectLinkName(),
|
||||
action.payload.submissionId,
|
||||
'sections').pipe(
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionFormSuccessAction(action.payload.submissionId, response)),
|
||||
map((response: SubmissionObject[]) => new SaveSubmissionFormSuccessAction(action.payload.submissionId, response, action.payload.isManual)),
|
||||
catchError(() => observableOf(new SaveSubmissionFormErrorAction(action.payload.submissionId))));
|
||||
}));
|
||||
|
||||
|
Reference in New Issue
Block a user