Skip to content

Commit ccbe6ae

Browse files
Simone-RamundiAndrea Barbasso
authored andcommitted
Merged in task/dspace-cris-2023_02_x/DSC-1823 (pull request DSpace#2343)
Task/dspace cris 2023 02 x/DSC-1823 Approved-by: Andrea Barbasso
2 parents 3c39a3d + f130702 commit ccbe6ae

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@
4141
<!-- In case of repeatable fields show empty space for all elements except the first -->
4242
<!-- In case of not repeatable field with multiple values show empty space for all elements except the last -->
4343
<div *ngIf="(context?.index !== null && (!showErrorMessages || errorMessages.length === 0)) || (!hasHint && !showErrorMessages) ||
44-
(!model.hideErrorMessages && showErrorMessages && !(!(model?.isModelOfNotRepeatableGroup) || model?.isModelOfNotRepeatableGroup && context?.index === context?.context?.groups?.length - 1))"
44+
(!model.hideErrorMessages && showErrorMessages && !(!(model?.isModelOfNotRepeatableGroup) || model?.isModelOfNotRepeatableGroup && context?.index === context?.context?.groups?.length - 1)) && isNotRequiredGroupAndEmpty()"
4545
class="clearfix w-100 mb-2"></div>
4646

4747
<!-- In case of not repeatable field with multiple values show error message for the last element only -->
4848
<div
49-
*ngIf="!model.hideErrorMessages && showErrorMessages && (!(model?.isModelOfNotRepeatableGroup) || model?.isModelOfNotRepeatableGroup && context?.index === context?.context?.groups?.length - 1)"
49+
*ngIf="!model.hideErrorMessages && showErrorMessages && (!(model?.isModelOfNotRepeatableGroup) || model?.isModelOfNotRepeatableGroup && context?.index === context?.context?.groups?.length - 1) && isNotRequiredGroupAndEmpty()"
5050
[id]="id + '_errors'"
5151
[ngClass]="[getClass('element', 'errors'), getClass('grid', 'errors')]">
5252
<small *ngFor="let message of errorMessages"

src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,4 +581,20 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
581581
}
582582
}
583583

584+
isNotRequiredGroupAndEmpty(): boolean {
585+
const parent = this.model.parent;
586+
587+
if (hasValue(parent) && parent.type === 'GROUP') {
588+
589+
const groupHasSomeValue = parent.group.some(elem => !!elem.value);
590+
591+
if (!groupHasSomeValue && !parent.isRequired && parent.group?.length > 1) {
592+
this.group.reset();
593+
}
594+
595+
return (groupHasSomeValue && !parent.isRequired) || (hasValue(parent.isRequired) && parent.isRequired);
596+
} else {
597+
return true;
598+
}
599+
}
584600
}

0 commit comments

Comments
 (0)