added workspace item to fieldparsers

This commit is contained in:
lotte
2019-07-19 16:24:40 +02:00
parent e179596ac2
commit 3bb2ac15e9
13 changed files with 75 additions and 25 deletions

View File

@@ -15,7 +15,10 @@ import { hasValue, isNotEmpty, isUndefined } from '../../../shared/empty.util';
import { ConfigData } from '../../../core/config/config-data';
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
import { SubmissionFormsModel } from '../../../core/config/models/config-submission-forms.model';
import { SubmissionSectionError, SubmissionSectionObject } from '../../objects/submission-objects.reducer';
import {
SubmissionSectionError,
SubmissionSectionObject
} from '../../objects/submission-objects.reducer';
import { FormFieldPreviousValueObject } from '../../../shared/form/builder/models/form-field-previous-value-object';
import { GLOBAL_CONFIG } from '../../../../config';
import { GlobalConfig } from '../../../../config/global-config.interface';
@@ -28,6 +31,11 @@ import { NotificationsService } from '../../../shared/notifications/notification
import { SectionsService } from '../sections.service';
import { difference } from '../../../shared/object.util';
import { WorkspaceitemSectionFormObject } from '../../../core/submission/models/workspaceitem-section-form.model';
import { Workspaceitem } from '../../../core/submission/models/workspaceitem.model';
import { WorkspaceitemDataService } from '../../../core/submission/workspaceitem-data.service';
import { combineLatest as combineLatestObservable } from 'rxjs';
import { getSucceededRemoteData } from '../../../core/shared/operators';
import { RemoteData } from '../../../core/data/remote-data';
/**
* This component represents a section that contains a Form.
@@ -94,6 +102,7 @@ export class SubmissionSectionformComponent extends SectionModelComponent {
*/
protected subs: Subscription[] = [];
protected workspaceItem;
/**
* The FormComponent reference
*/
@@ -125,6 +134,7 @@ export class SubmissionSectionformComponent extends SectionModelComponent {
protected sectionService: SectionsService,
protected submissionService: SubmissionService,
protected translate: TranslateService,
protected workspaceItemDataService: WorkspaceitemDataService,
@Inject(GLOBAL_CONFIG) protected EnvConfig: GlobalConfig,
@Inject('collectionIdProvider') public injectedCollectionId: string,
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
@@ -138,16 +148,20 @@ export class SubmissionSectionformComponent extends SectionModelComponent {
onSectionInit() {
this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id);
this.formId = this.formService.getUniqueId(this.sectionData.id);
this.formConfigService.getConfigByHref(this.sectionData.config).pipe(
map((configData: ConfigData) => configData.payload),
tap((config: SubmissionFormsModel) => this.formConfig = config),
flatMap(() => this.sectionService.getSectionData(this.submissionId, this.sectionData.id)),
flatMap(() =>
combineLatestObservable(
this.sectionService.getSectionData(this.submissionId, this.sectionData.id),
this.workspaceItemDataService.findById(this.submissionId).pipe(getSucceededRemoteData())
)),
take(1))
.subscribe((sectionData: WorkspaceitemSectionFormObject) => {
.subscribe(([sectionData, workspaceItem]: [WorkspaceitemSectionFormObject, RemoteData<Workspaceitem>]) => {
if (isUndefined(this.formModel)) {
this.sectionData.errors = [];
// Is the first loading so init form
this.workspaceItem = workspaceItem;
this.initForm(sectionData);
this.sectionData.data = sectionData;
this.subscriptions();
@@ -212,7 +226,9 @@ export class SubmissionSectionformComponent extends SectionModelComponent {
this.formConfig,
this.collectionId,
sectionData,
this.submissionService.getSubmissionScope());
this.workspaceItem,
this.submissionService.getSubmissionScope()
);
} catch (e) {
const msg: string = this.translate.instant('error.submission.sections.init-form-error') + e.toString();
const sectionError: SubmissionSectionError = {