Fix publication update component.

This commit is contained in:
Florian THIERRY
2026-02-03 14:28:50 +01:00
parent c91bb7b720
commit 64aecec4af
2 changed files with 23 additions and 21 deletions

View File

@@ -55,7 +55,7 @@ export class PublicationEditionComponent {
const publicationInEdition = this.publicationInEdition();
if (!publicationInEdition || publicationInEdition !== publication) {
this.publicationInEdition.set(publication);
this.#publicationEditionService.init(publicationInEdition);
this.#publicationEditionService.init(publication);
}
});
}

View File

@@ -13,6 +13,7 @@ import {PublicationEditionComponent} from '../../components/publication-edition/
import {Publication} from '../../core/rest-services/publications/model/publication';
import {PublicationRestService} from '../../core/rest-services/publications/publication.rest-service';
import {toSignal} from "@angular/core/rxjs-interop";
import {map} from "rxjs";
@Component({
selector: 'app-publication-update',
@@ -40,6 +41,10 @@ export class PublicationUpdateComponent {
#isSavingSubject = signal(false);
publication = signal<Publication | undefined>(undefined);
#publicationId$ = this.#activatedRoute.params
.pipe(map(queryParams => queryParams['publicationId']));
#publicationId = toSignal(this.#publicationId$, { initialValue: undefined });
get isLoading(): Signal<boolean> {
return this.#isLoading.asReadonly();
}
@@ -49,29 +54,26 @@ export class PublicationUpdateComponent {
}
constructor() {
const queryParams = toSignal(this.#activatedRoute.queryParamMap);
effect(() => {
let params = queryParams();
this.#isLoading.set(true);
if (params) {
const publicationId = params.get('publicationId');
if (publicationId == undefined) {
this.#snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, {duration: 5000});
this.#location.back();
} else {
this.#publicationRestService.getById(publicationId)
.then(publication => {
this.publication.set(publication);
})
.catch(error => {
const errorMessage = $localize`A technical error occurred while loading publication data.`;
this.#snackBar.open(errorMessage, $localize`Close`, {duration: 5000});
console.error(errorMessage, error)
})
.finally(() => this.#isLoading.set(false));
}
const publicationId = this.#publicationId();
if (publicationId) {
this.#publicationRestService.getById(publicationId)
.then(publication => {
this.publication.set(publication);
})
.catch(error => {
const errorMessage = $localize`A technical error occurred while loading publication data.`;
this.#snackBar.open(errorMessage, $localize`Close`, {duration: 5000});
console.error(errorMessage, error)
})
.finally(() => this.#isLoading.set(false));
} else {
this.#snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, {duration: 5000});
this.#location.back();
}
})
});
}
onPublicationSave(publication: Publication): void {