RED-10244: fix dossier with files not having template field disabled.

This commit is contained in:
Nicoleta Panaghiu 2024-10-28 18:21:03 +02:00
parent 3dc63bf77c
commit 8fab3fc04d

View File

@ -119,7 +119,11 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
private readonly _dossierStatesService: DossierStatesService, private readonly _dossierStatesService: DossierStatesService,
) { ) {
effect(() => { effect(() => {
if (this.dossierStatusIdControl() !== this.initialFormValue.dossierStatusId && this.dossierStatusIdControl()) { const shouldBeDisabled = this.#formValue.find(item => item.key === 'dossierTemplateId')?.disabled;
if (
(this.dossierStatusIdControl() !== this.initialFormValue.dossierStatusId && this.dossierStatusIdControl()) ||
shouldBeDisabled
) {
this.form.controls.dossierTemplateId.disable(); this.form.controls.dossierTemplateId.disable();
} else { } else {
this.form.controls.dossierTemplateId.enable(); this.form.controls.dossierTemplateId.enable();
@ -180,7 +184,6 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
get #formValue(): { key: string; value: string; disabled: boolean }[] { get #formValue(): { key: string; value: string; disabled: boolean }[] {
const dossier = untracked(this.dossier); const dossier = untracked(this.dossier);
const formFieldWithArchivedCheck = value => ({ value, disabled: !dossier.isActive }); const formFieldWithArchivedCheck = value => ({ value, disabled: !dossier.isActive });
const dossierStateId = untracked(this.dossierStatusIdControl);
const states = untracked(this.states); const states = untracked(this.states);
return [ return [
{ {
@ -190,7 +193,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
{ {
key: 'dossierTemplateId', key: 'dossierTemplateId',
value: dossier.dossierTemplateId, value: dossier.dossierTemplateId,
disabled: this._dossierStatsService.get(dossier.id).hasFiles || !dossier.isActive || !!dossierStateId, disabled: this._dossierStatsService.get(dossier.id).hasFiles || !dossier.isActive,
}, },
{ {
key: 'dossierStatusId', key: 'dossierStatusId',
@ -209,7 +212,6 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
} }
ngOnInit() { ngOnInit() {
this.#patchFormValue();
if (isJustOne(this._dossierTemplatesService.all)) { if (isJustOne(this._dossierTemplatesService.all)) {
this._loadingService.loadWhile( this._loadingService.loadWhile(
firstValueFrom(this._dossierTemplatesService.loadOnlyDossierTemplates()).then(async () => { firstValueFrom(this._dossierTemplatesService.loadOnlyDossierTemplates()).then(async () => {
@ -220,7 +222,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
} else { } else {
this.#filterInvalidDossierTemplates(); this.#filterInvalidDossierTemplates();
} }
this.#patchFormValue();
if (!this.permissionsService.canEditDossier(this.dossier())) { if (!this.permissionsService.canEditDossier(this.dossier())) {
this.form.disable(); this.form.disable();
} }