Mess commit.

This commit is contained in:
Florian THIERRY
2024-08-19 22:42:42 +02:00
parent 32ab1d79c8
commit 56ac024cba
23 changed files with 428 additions and 36 deletions
@@ -1,11 +1,14 @@
import { Location } from "@angular/common";
import { inject, Injectable } from "@angular/core";
import { inject, Injectable, OnDestroy } from "@angular/core";
import { MatSnackBar } from "@angular/material/snack-bar";
import { ActivatedRoute } from "@angular/router";
import { BehaviorSubject, Observable } from "rxjs";
import { BehaviorSubject, Observable, Subscription } from "rxjs";
import { Publication } from "../../core/rest-services/publications/model/publication";
import { PublicationRestService } from "../../core/rest-services/publications/publication.rest-service";
import { copy } from '../../core/utils/ObjectUtils';
import { MatDialog } from "@angular/material/dialog";
import { PictureSelectionDialog } from "./picture-selection-dialog/picture-selection-dialog.component";
const DEFAULT_PUBLICATION: Publication = {
id: '',
@@ -25,14 +28,20 @@ const DEFAULT_PUBLICATION: Publication = {
};
@Injectable()
export class PublicationEditionService {
private activatedRoute = inject(ActivatedRoute);
private publicationRestService = inject(PublicationRestService);
private location = inject(Location);
private snackBar = inject(MatSnackBar);
export class PublicationEditionService implements OnDestroy {
private readonly activatedRoute = inject(ActivatedRoute);
private readonly publicationRestService = inject(PublicationRestService);
private readonly location = inject(Location);
private readonly snackBar = inject(MatSnackBar);
private readonly dialog = inject(MatDialog);
private isLoadingSubject = new BehaviorSubject<boolean>(false);
private publicationSubject = new BehaviorSubject<Publication>(copy(DEFAULT_PUBLICATION));
private subscriptions: Subscription[] = [];
ngOnDestroy(): void {
this.subscriptions.forEach(subscription => subscription.unsubscribe());
}
private get _publication(): Publication {
return this.publicationSubject.value;
@@ -90,4 +99,22 @@ export class PublicationEditionService {
publication.text = text;
this._save(publication);
}
editIllustrationId(pictureId: string): void {
const publication = this._publication;
publication.illustrationId = pictureId
this._save(publication);
}
displayPictureSectionDialog(): void {
const dialogRef = this.dialog.open(PictureSelectionDialog);
const afterDialogCloseSubscription = dialogRef.afterClosed()
.subscribe(newPictureId => {
if (newPictureId) {
this.editIllustrationId(newPictureId);
}
});
this.subscriptions.push(afterDialogCloseSubscription);
}
}