Fix critical issue with dataset saving
This commit is contained in:
parent
65b4e58aad
commit
3c00d47407
|
@ -12,7 +12,7 @@ export interface Field {
|
||||||
description: string;
|
description: string;
|
||||||
numbering: string;
|
numbering: string;
|
||||||
extendedDescription: string;
|
extendedDescription: string;
|
||||||
additionalInformation:string;
|
additionalInformation: string;
|
||||||
viewStyle: ViewStyle;
|
viewStyle: ViewStyle;
|
||||||
defaultVisibility: boolean;
|
defaultVisibility: boolean;
|
||||||
page: number;
|
page: number;
|
||||||
|
@ -22,4 +22,5 @@ export interface Field {
|
||||||
validations: Array<ValidationType>;
|
validations: Array<ValidationType>;
|
||||||
validationRequired;
|
validationRequired;
|
||||||
validationURL;
|
validationURL;
|
||||||
|
ordinal: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
import {FormBuilder, FormControl, FormGroup, ValidatorFn, Validators} from "@angular/forms";
|
import { FormBuilder, FormControl, FormGroup, ValidatorFn, Validators } from "@angular/forms";
|
||||||
import {Guid} from '@common/types/guid';
|
import { Guid } from '@common/types/guid';
|
||||||
import {ValidationType, ValidatorURL} from "../../../core/common/enum/validation-type";
|
import { ValidationType, ValidatorURL } from "../../../core/common/enum/validation-type";
|
||||||
import {BaseFormModel} from "../../../core/model/base-form-model";
|
import { BaseFormModel } from "../../../core/model/base-form-model";
|
||||||
import {CompositeField} from "../../../core/model/dataset-profile-definition/composite-field";
|
import { CompositeField } from "../../../core/model/dataset-profile-definition/composite-field";
|
||||||
import {DatasetProfileDefinitionModel} from "../../../core/model/dataset-profile-definition/dataset-profile-definition";
|
import { DatasetProfileDefinitionModel } from "../../../core/model/dataset-profile-definition/dataset-profile-definition";
|
||||||
import {DefaultValue} from "../../../core/model/dataset-profile-definition/default-value";
|
import { DefaultValue } from "../../../core/model/dataset-profile-definition/default-value";
|
||||||
import {Field} from "../../../core/model/dataset-profile-definition/field";
|
import { Field } from "../../../core/model/dataset-profile-definition/field";
|
||||||
import {Multiplicity} from "../../../core/model/dataset-profile-definition/multiplicity";
|
import { Multiplicity } from "../../../core/model/dataset-profile-definition/multiplicity";
|
||||||
import {Page} from "../../../core/model/dataset-profile-definition/page";
|
import { Page } from "../../../core/model/dataset-profile-definition/page";
|
||||||
import {Rule} from "../../../core/model/dataset-profile-definition/rule";
|
import { Rule } from "../../../core/model/dataset-profile-definition/rule";
|
||||||
import {Section} from "../../../core/model/dataset-profile-definition/section";
|
import { Section } from "../../../core/model/dataset-profile-definition/section";
|
||||||
import {ViewStyle} from "../../../core/model/dataset-profile-definition/view-style";
|
import { ViewStyle } from "../../../core/model/dataset-profile-definition/view-style";
|
||||||
import {BackendErrorValidator} from '@common/forms/validation/custom-validator';
|
import { BackendErrorValidator } from '@common/forms/validation/custom-validator';
|
||||||
import {ValidationErrorModel} from '@common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model';
|
||||||
|
|
||||||
export class DatasetDescriptionFormEditorModel extends BaseFormModel {
|
export class DatasetDescriptionFormEditorModel extends BaseFormModel {
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ export class DatasetDescriptionPageEditorModel extends BaseFormModel {
|
||||||
});
|
});
|
||||||
formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray));
|
formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray));
|
||||||
formGroup.addControl('title', new FormControl({ value: this.title, disabled: true }));
|
formGroup.addControl('title', new FormControl({ value: this.title, disabled: true }));
|
||||||
formGroup.addControl('ordinal', new FormControl({value:this.ordinal, disabled:true}));
|
formGroup.addControl('ordinal', new FormControl({ value: this.ordinal, disabled: true }));
|
||||||
return formGroup;
|
return formGroup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,17 +194,17 @@ export class DatasetDescriptionCompositeFieldEditorModel extends BaseFormModel {
|
||||||
// return newItem;
|
// return newItem;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
cloneForMultiplicity(item: CompositeField, ordinal: number, idMappings:{old:string, new:string}[] = []): DatasetDescriptionCompositeFieldEditorModel {
|
cloneForMultiplicity(item: CompositeField, ordinal: number, idMappings: { old: string, new: string }[] = []): DatasetDescriptionCompositeFieldEditorModel {
|
||||||
const newItem: DatasetDescriptionCompositeFieldEditorModel = new DatasetDescriptionCompositeFieldEditorModel();
|
const newItem: DatasetDescriptionCompositeFieldEditorModel = new DatasetDescriptionCompositeFieldEditorModel();
|
||||||
newItem.id = 'multiple_' + item.id + '_' + Guid.create() + '_' + ordinal;
|
newItem.id = 'multiple_' + item.id + '_' + Guid.create() + '_' + ordinal;
|
||||||
|
|
||||||
idMappings.push({old: item.id, new: newItem.id });
|
idMappings.push({ old: item.id, new: newItem.id });
|
||||||
item.fields.forEach((field, index) => {
|
item.fields.forEach((field, index) => {
|
||||||
|
|
||||||
const clonedItem = new DatasetDescriptionFieldEditorModel().cloneForMultiplicity(field, newItem.id)
|
const clonedItem = new DatasetDescriptionFieldEditorModel().cloneForMultiplicity(field, newItem.id)
|
||||||
newItem.fields.push(clonedItem);
|
newItem.fields.push(clonedItem);
|
||||||
|
|
||||||
idMappings.push({old: field.id, new: clonedItem.id});
|
idMappings.push({ old: field.id, new: clonedItem.id });
|
||||||
});
|
});
|
||||||
newItem.ordinal = ordinal;
|
newItem.ordinal = ordinal;
|
||||||
return newItem;
|
return newItem;
|
||||||
|
@ -230,9 +230,11 @@ export class DatasetDescriptionFieldEditorModel extends BaseFormModel {
|
||||||
public validations: Array<ValidationType>;
|
public validations: Array<ValidationType>;
|
||||||
public validationRequired = false;
|
public validationRequired = false;
|
||||||
public validationURL = false;
|
public validationURL = false;
|
||||||
|
public ordinal: number;
|
||||||
|
|
||||||
fromModel(item: Field): DatasetDescriptionFieldEditorModel {
|
fromModel(item: Field): DatasetDescriptionFieldEditorModel {
|
||||||
this.id = item.id;
|
this.id = item.id;
|
||||||
|
this.ordinal = item.ordinal;
|
||||||
this.title = item.title;
|
this.title = item.title;
|
||||||
this.numbering = item.numbering;
|
this.numbering = item.numbering;
|
||||||
this.description = item.description;
|
this.description = item.description;
|
||||||
|
@ -256,16 +258,16 @@ export class DatasetDescriptionFieldEditorModel extends BaseFormModel {
|
||||||
this.validations.forEach(validation => {
|
this.validations.forEach(validation => {
|
||||||
if (validation === ValidationType.Required) {
|
if (validation === ValidationType.Required) {
|
||||||
this.validationRequired = true;
|
this.validationRequired = true;
|
||||||
} else if(validation === ValidationType.URL) {
|
} else if (validation === ValidationType.URL) {
|
||||||
this.validationURL = true;
|
this.validationURL = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
let validators: any[] = [];
|
let validators: any[] = [];
|
||||||
if(this.validationRequired) {
|
if (this.validationRequired) {
|
||||||
validators.push(Validators.required)
|
validators.push(Validators.required)
|
||||||
}
|
}
|
||||||
if(this.validationURL) {
|
if (this.validationURL) {
|
||||||
validators.push(ValidatorURL.validator);
|
validators.push(ValidatorURL.validator);
|
||||||
}
|
}
|
||||||
const formGroup = this.formBuilder.group({
|
const formGroup = this.formBuilder.group({
|
||||||
|
@ -280,6 +282,7 @@ export class DatasetDescriptionFieldEditorModel extends BaseFormModel {
|
||||||
additionalInformation: [{ value: this.additionalInformation, disabled: true }],
|
additionalInformation: [{ value: this.additionalInformation, disabled: true }],
|
||||||
title: [{ value: this.title, disabled: true }],
|
title: [{ value: this.title, disabled: true }],
|
||||||
defaultValue: [{ value: this.defaultValue, disabled: true }],
|
defaultValue: [{ value: this.defaultValue, disabled: true }],
|
||||||
|
ordinal: [{ value: this.ordinal, disabled: true }]
|
||||||
});
|
});
|
||||||
|
|
||||||
const multiplicityItemsFormArray = new Array<FormGroup>();
|
const multiplicityItemsFormArray = new Array<FormGroup>();
|
||||||
|
|
Loading…
Reference in New Issue