115284: Add repeatable based on relationship max cardinality

(cherry picked from commit 105547598f)
This commit is contained in:
Yana De Pauw
2024-06-26 08:32:43 +02:00
committed by github-actions[bot]
parent 2d58de86bd
commit e4a464d44f

View File

@@ -264,6 +264,22 @@ export class EditRelationshipListComponent implements OnInit, OnDestroy {
return update && update.field ? update.field.uuid : undefined;
}
/**
* Check whether the current entity can have multiple relationships of this type
* This is based on the max cardinality of the relationship
* @private
*/
private isRepeatable(): boolean {
const isLeft = this.currentItemIsLeftItem$.getValue();
if (isLeft) {
const leftMaxCardinality = this.relationshipType.leftMaxCardinality;
return hasNoValue(leftMaxCardinality) || leftMaxCardinality > 1;
} else {
const rightMaxCardinality = this.relationshipType.rightMaxCardinality;
return hasNoValue(rightMaxCardinality) || rightMaxCardinality > 1;
}
}
/**
* Open the dynamic lookup modal to search for items to add as relationships
*/
@@ -281,6 +297,7 @@ export class EditRelationshipListComponent implements OnInit, OnDestroy {
modalComp.toAdd = [];
modalComp.toRemove = [];
modalComp.isPending = false;
modalComp.repeatable = this.isRepeatable();
modalComp.hiddenQuery = '-search.resourceid:' + this.item.uuid;
this.item.owningCollection.pipe(