From 840fde4ad4d784dc423bf19070390f28657c7aa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 18 Sep 2025 12:51:49 +0200 Subject: [PATCH] Filter `PersonIdentifierWorker` by `presence` during initialization and update type definitions. Add `presence` field to `PersonIdentifierWorkerNormalizer`. --- .../Normalizer/PersonIdentifierWorkerNormalizer.php | 1 + src/Bundle/ChillPersonBundle/Resources/public/types.ts | 3 +++ .../public/vuejs/_components/OnTheFly/PersonEdit.vue | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Bundle/ChillPersonBundle/PersonIdentifier/Normalizer/PersonIdentifierWorkerNormalizer.php b/src/Bundle/ChillPersonBundle/PersonIdentifier/Normalizer/PersonIdentifierWorkerNormalizer.php index e49fac559..432dea50c 100644 --- a/src/Bundle/ChillPersonBundle/PersonIdentifier/Normalizer/PersonIdentifierWorkerNormalizer.php +++ b/src/Bundle/ChillPersonBundle/PersonIdentifier/Normalizer/PersonIdentifierWorkerNormalizer.php @@ -28,6 +28,7 @@ final readonly class PersonIdentifierWorkerNormalizer implements NormalizerInter 'engine' => $object->getDefinition()->getEngine(), 'label' => $object->getDefinition()->getLabel(), 'isActive' => $object->getDefinition()->isActive(), + 'presence' => $object->getDefinition()->getPresence()->value, ]; } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/types.ts b/src/Bundle/ChillPersonBundle/Resources/public/types.ts index 524b117a9..cdd48e76d 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/types.ts +++ b/src/Bundle/ChillPersonBundle/Resources/public/types.ts @@ -423,12 +423,15 @@ export interface SearchOptions { }; } +type PersonIdentifierPresence = 'NOT_EDITABLE' | 'ON_EDIT' | 'ON_CREATION' | 'REQUIRED'; + export interface PersonIdentifierWorker { type: "person_identifier_worker"; definition_id: number; engine: string; label: TranslatableString; isActive: boolean; + presence: PersonIdentifierPresence; } export class MakeFetchException extends Error { diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue index a0ea60fed..ad99ccaee 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/OnTheFly/PersonEdit.vue @@ -649,7 +649,10 @@ onMounted(() => { config.genders = genders; }); getPersonIdentifiers().then((identifiers) => { - config.identifiers = identifiers; + config.identifiers = identifiers.filter( + (w: PersonIdentifierWorker) => + w.presence === 'ON_CREATION' || w.presence === 'REQUIRED' + ); }); if (props.action !== "create") { loadData();