Changes in order to keep server side validation errors into the submission form state

This commit is contained in:
Giuseppe Digilio
2021-05-14 19:23:03 +02:00
parent 0724692d40
commit 44d2310cdb
20 changed files with 265 additions and 131 deletions

View File

@@ -2,11 +2,11 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
import { Subscription } from 'rxjs';
import { filter, switchMap, debounceTime } from 'rxjs/operators';
import { debounceTime, filter, switchMap } from 'rxjs/operators';
import { TranslateService } from '@ngx-translate/core';
import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model';
import { hasValue, isEmpty, isNotNull, isNotEmptyOperator } from '../../shared/empty.util';
import { hasValue, isEmpty, isNotEmptyOperator, isNotNull } from '../../shared/empty.util';
import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model';
import { SubmissionService } from '../submission.service';
import { NotificationsService } from '../../shared/notifications/notifications.service';
@@ -17,6 +17,8 @@ import { Item } from '../../core/shared/item.model';
import { getAllSucceededRemoteData } from '../../core/shared/operators';
import { ItemDataService } from '../../core/data/item-data.service';
import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
import { SubmissionError } from '../objects/submission-objects.reducer';
import parseSectionErrors from '../utils/parseSectionErrors';
/**
* This component allows to edit an existing workspaceitem/workflowitem.
@@ -52,6 +54,12 @@ export class SubmissionEditComponent implements OnDestroy, OnInit {
*/
public submissionDefinition: SubmissionDefinitionsModel;
/**
* The submission errors present in the submission object
* @type {SubmissionError}
*/
public submissionErrors: SubmissionError;
/**
* The submission id
* @type {string}
@@ -110,6 +118,8 @@ export class SubmissionEditComponent implements OnDestroy, OnInit {
this.notificationsService.info(null, this.translate.get('submission.general.cannot_submit'));
this.router.navigate(['/mydspace']);
} else {
const { errors } = submissionObjectRD.payload;
this.submissionErrors = parseSectionErrors(errors);
this.submissionId = submissionObjectRD.payload.id.toString();
this.collectionId = (submissionObjectRD.payload.collection as Collection).id;
this.selfUrl = submissionObjectRD.payload._links.self.href;