mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Merge pull request #830 from atmire/submission-repeatable-issue
Fix issue with repeatable scrollable dropdowns in the submission
This commit is contained in:
@@ -318,6 +318,12 @@ export class FormComponent implements OnDestroy, OnInit {
|
|||||||
const model = arrayContext.groups[arrayContext.groups.length - 1].group[0] as any;
|
const model = arrayContext.groups[arrayContext.groups.length - 1].group[0] as any;
|
||||||
if (model.type === DYNAMIC_FORM_CONTROL_TYPE_SCROLLABLE_DROPDOWN) {
|
if (model.type === DYNAMIC_FORM_CONTROL_TYPE_SCROLLABLE_DROPDOWN) {
|
||||||
model.value = Object.values(value)[0];
|
model.value = Object.values(value)[0];
|
||||||
|
const ctrl = formArrayControl.controls[formArrayControl.length - 1];
|
||||||
|
const ctrlValue = ctrl.value;
|
||||||
|
const ctrlValueKey = Object.keys(ctrlValue)[0];
|
||||||
|
ctrl.setValue({
|
||||||
|
[ctrlValueKey]: model.value
|
||||||
|
});
|
||||||
} else if (this.formBuilderService.isQualdropGroup(model)) {
|
} else if (this.formBuilderService.isQualdropGroup(model)) {
|
||||||
const ctrl = formArrayControl.controls[formArrayControl.length - 1];
|
const ctrl = formArrayControl.controls[formArrayControl.length - 1];
|
||||||
const ctrlKey = Object.keys(ctrl.value).find((key: string) => isNotEmpty(key.match(QUALDROP_GROUP_REGEX)));
|
const ctrlKey = Object.keys(ctrl.value).find((key: string) => isNotEmpty(key.match(QUALDROP_GROUP_REGEX)));
|
||||||
|
@@ -28,6 +28,7 @@ import { FormBuilderService } from '../../../shared/form/builder/form-builder.se
|
|||||||
import { FormFieldMetadataValueObject } from '../../../shared/form/builder/models/form-field-metadata-value.model';
|
import { FormFieldMetadataValueObject } from '../../../shared/form/builder/models/form-field-metadata-value.model';
|
||||||
import { DynamicQualdropModel } from '../../../shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-qualdrop.model';
|
import { DynamicQualdropModel } from '../../../shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-qualdrop.model';
|
||||||
import { DynamicRelationGroupModel } from '../../../shared/form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.model';
|
import { DynamicRelationGroupModel } from '../../../shared/form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.model';
|
||||||
|
import { deepClone } from 'fast-json-patch';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The service handling all form section operations
|
* The service handling all form section operations
|
||||||
@@ -310,7 +311,7 @@ export class SectionFormOperationsService {
|
|||||||
event: DynamicFormControlEvent
|
event: DynamicFormControlEvent
|
||||||
): void {
|
): void {
|
||||||
const path = this.getFieldPathSegmentedFromChangeEvent(event);
|
const path = this.getFieldPathSegmentedFromChangeEvent(event);
|
||||||
const value = this.getFieldValueFromChangeEvent(event);
|
const value = deepClone(this.getFieldValueFromChangeEvent(event));
|
||||||
if (isNotEmpty(value)) {
|
if (isNotEmpty(value)) {
|
||||||
value.place = this.getArrayIndexFromEvent(event);
|
value.place = this.getArrayIndexFromEvent(event);
|
||||||
if (hasValue(event.group) && hasValue(event.group.value)) {
|
if (hasValue(event.group) && hasValue(event.group.value)) {
|
||||||
|
Reference in New Issue
Block a user