improvement on computing ordinal on mutliplicity fields

This commit is contained in:
Kristian Ntavidi 2021-09-27 16:25:17 +03:00
parent 9cac208546
commit faeb7e0d62
1 changed files with 10 additions and 1 deletions

View File

@ -74,8 +74,17 @@ export class FormSectionComponent implements OnInit, OnChanges {
addMultipleField(fieldsetIndex: number) {
const compositeFieldToBeCloned = (this.form.get('compositeFields').get('' + fieldsetIndex) as FormGroup).getRawValue();
const multiplicityItemsArray = (<FormArray>(this.form.get('compositeFields').get('' + fieldsetIndex).get('multiplicityItems')));
const ordinal = multiplicityItemsArray.length? multiplicityItemsArray.controls.reduce((ordinal, currentControl)=>{
const currentOrdinal = currentControl.get('ordinal').value as number;
if(currentOrdinal>= ordinal){
return currentOrdinal +1;
}
return ordinal as number;
},0) : 0;
const idMappings = [] as {old: string, new: string}[];
const compositeField: DatasetDescriptionCompositeFieldEditorModel = new DatasetDescriptionCompositeFieldEditorModel().cloneForMultiplicity(compositeFieldToBeCloned, multiplicityItemsArray.length,idMappings);
const compositeField: DatasetDescriptionCompositeFieldEditorModel = new DatasetDescriptionCompositeFieldEditorModel().cloneForMultiplicity(compositeFieldToBeCloned, ordinal ,idMappings);