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();