Implementation of picture addition button in editor.

This commit is contained in:
Florian THIERRY
2024-08-30 18:13:43 +02:00
parent b84ba15f4c
commit c09c68e1ac
3 changed files with 31 additions and 1 deletions

View File

@@ -38,7 +38,7 @@
<button type="button" matTooltip="Click to insert a title 1 section" (click)="insertTitle(3)"> <button type="button" matTooltip="Click to insert a title 1 section" (click)="insertTitle(3)">
H3 H3
</button> </button>
<button type="button" disabled matTooltip="Click to insert a picture"> <button type="button" matTooltip="Click to insert a picture" (click)="selectAPicture()">
<mat-icon>image</mat-icon> <mat-icon>image</mat-icon>
</button> </button>
<button type="button" matTooltip="Click to insert a link" (click)="insertLink()"> <button type="button" matTooltip="Click to insert a link" (click)="insertLink()">

View File

@@ -104,6 +104,10 @@ export class PublicationEditionComponent implements OnInit, OnDestroy {
this.publicationEditionService.insertTitle(titleNumber); this.publicationEditionService.insertTitle(titleNumber);
} }
selectAPicture(): void {
this.publicationEditionService.selectAPicture();
}
insertLink(): void { insertLink(): void {
this.publicationEditionService.insertLink(); this.publicationEditionService.insertLink();
} }

View File

@@ -177,6 +177,32 @@ export class PublicationEditionService implements OnDestroy {
} }
} }
selectAPicture(): void {
const dialogRef = this.dialog.open(PictureSelectionDialog);
const afterDialogCloseSubscription = dialogRef.afterClosed()
.subscribe(newPictureId => {
if (newPictureId) {
this.insertPicture(newPictureId);
}
});
this.subscriptions.push(afterDialogCloseSubscription);
}
insertPicture(pictureId: string): void {
const state = this._state;
const publication = state.publication;
const publicationTextLeftPart = publication.text.substring(0, state.cursorPosition.start);
const publicationTextRightPart = publication.text.substring(state.cursorPosition.start);
const textWithTags = `${publicationTextLeftPart}[img src="/api/pictures/${pictureId}" /]${publicationTextRightPart}`;
publication.text = textWithTags;
this._save(state);
}
insertLink(): void { insertLink(): void {
const state = this._state; const state = this._state;