Skip to content

Conversation

@VincentCauchois
Copy link
Member

@VincentCauchois VincentCauchois commented Nov 3, 2025

⚠️ Cible mise temporairement à feat/additional-fields-for-metadata - // PR #3744 - plutôt que develop pour pouvoir tester le pré-remplissage de champs additionnel

@VincentCauchois VincentCauchois self-assigned this Nov 3, 2025
@VincentCauchois VincentCauchois added enhancement frontend javascript Pull requests that update Javascript code labels Nov 3, 2025
@VincentCauchois VincentCauchois force-pushed the feat/add-set-from-query-params-for-af-form branch 9 times, most recently from 0e2666a to 454b302 Compare November 6, 2025 12:44
@VincentCauchois VincentCauchois force-pushed the feat/add-set-from-query-params-for-af-form branch from 454b302 to ed4f489 Compare November 6, 2025 12:45
Comment on lines 111 to 165
combineLatest([
this.acquisition_framework.asObservable().pipe(
tap(() => this.reset()),
tap(() => {
this.additionalFieldsForm = [];
}),
switchMap((af) =>
af !== null ? this.acquisition_framework.asObservable() : this.initialValues
),
map((value) => {
if (value.cor_af_actor) {
if (this.actorFormS.nbMainContact(value.cor_af_actor) == 0) {
value.cor_af_actor.push({
id_nomenclature_actor_role: this.actorFormS.getIDRoleTypeByCdNomenclature('1'),
});
}
value.cor_af_actor.forEach((actor) => {
this.addActor(this.actors, actor);
});
}
if (value.bibliographical_references) {
value.bibliographical_references.forEach((e) => {
this.addBibliographicalReferences();
});
}
return value;
}),
// Get additional fields from acquisition framework
switchMap((acquisition_framework) => {
let additionnalFieldsObservable: Observable<any>;
additionnalFieldsObservable = this.getAdditionalFields(['METADATA_CADRE_ACQUISITION']);
return forkJoin([of(acquisition_framework), additionnalFieldsObservable]);
}),
map(([acquisition_framework, additional_data]) => {
additional_data.forEach((field) => {
// Set value of field
if (acquisition_framework.additional_data[field.attribut_name] !== undefined) {
field.value = acquisition_framework.additional_data[field.attribut_name];
}
});

return [acquisition_framework, additional_data];
}),
// Set the additional fields form
tap(([acquisition_framework, additional_data]) => {
this.additionalFieldsForm = additional_data;
}),
// Map to return acquisition framework data only
map(([acquisition_framework, additional_data]) => acquisition_framework)
)
.subscribe((value: any) => this.form.patchValue(value));
),
this.queryParamsSource,
]).subscribe(([value, params]) => {
setTimeout(() => this.form.patchValue(value), 0);
this.setFromParams(params);
});
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pas idéal, il faudrait faire en sorte que this.form.patchValue(value) ne s'exécute que quand c'est nécessaire, et notamment pas quand il s'agit d'une émission de this.queryParamsSource seulement.

Comment on lines 112 to 157
this.acquisition_framework.asObservable().pipe(
tap(() => this.reset()),
tap(() => {
this.additionalFieldsForm = [];
}),
switchMap((af) =>
af !== null ? this.acquisition_framework.asObservable() : this.initialValues
),
map((value) => {
if (value.cor_af_actor) {
if (this.actorFormS.nbMainContact(value.cor_af_actor) == 0) {
value.cor_af_actor.push({
id_nomenclature_actor_role: this.actorFormS.getIDRoleTypeByCdNomenclature('1'),
});
}
value.cor_af_actor.forEach((actor) => {
this.addActor(this.actors, actor);
});
}
if (value.bibliographical_references) {
value.bibliographical_references.forEach((e) => {
this.addBibliographicalReferences();
});
}
return value;
}),
// Get additional fields from acquisition framework
switchMap((acquisition_framework) => {
let additionnalFieldsObservable: Observable<any>;
additionnalFieldsObservable = this.getAdditionalFields(['METADATA_CADRE_ACQUISITION']);
return forkJoin([of(acquisition_framework), additionnalFieldsObservable]);
}),
map(([acquisition_framework, additional_data]) => {
additional_data.forEach((field) => {
// Set value of field
if (acquisition_framework.additional_data[field.attribut_name] !== undefined) {
field.value = acquisition_framework.additional_data[field.attribut_name];
}
});

return [acquisition_framework, additional_data];
}),
// Set the additional fields form
tap(([acquisition_framework, additional_data]) => {
this.additionalFieldsForm = additional_data;
}),
// Map to return acquisition framework data only
map(([acquisition_framework, additional_data]) => acquisition_framework)
)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Voulu factoriser cette 1ʳᵉ observable longue dans une variable const afSource = [...], mais le lint ES vient ensuite me casser la définition de cette observable en ajoutant un ; non désiré à un endroit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement frontend javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants