From b0cc42fddd8578fdadd8a4816787a73260d7c338 Mon Sep 17 00:00:00 2001 From: Florian THIERRY Date: Wed, 4 Sep 2024 10:26:47 +0200 Subject: [PATCH] Implementaiton of preview tab. --- .../publication/PublicationUseCases.java | 4 ++ .../publication/PublicationController.java | 6 +++ .../model/PreviewContentRequest.java | 5 +++ .../publications/publication.rest-service.ts | 5 +++ .../publication-edition.component.html | 16 +++++++- .../publication-edition.component.scss | 37 ++++++++++++++++++- .../publication-edition.component.ts | 9 +++++ .../publication-edition.service.ts | 20 ++++++++++ frontend/src/styles.scss | 4 ++ 9 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/model/PreviewContentRequest.java diff --git a/backend/codiki-application/src/main/java/org/codiki/application/publication/PublicationUseCases.java b/backend/codiki-application/src/main/java/org/codiki/application/publication/PublicationUseCases.java index 6795986..655015e 100644 --- a/backend/codiki-application/src/main/java/org/codiki/application/publication/PublicationUseCases.java +++ b/backend/codiki-application/src/main/java/org/codiki/application/publication/PublicationUseCases.java @@ -195,4 +195,8 @@ public class PublicationUseCases { public List getLatest() { return publicationPort.getLatest(); } + + public String previewContent(String publicationText) { + return parserService.parse(publicationText); + } } diff --git a/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/PublicationController.java b/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/PublicationController.java index dbeb1fc..7dd9560 100644 --- a/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/PublicationController.java +++ b/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/PublicationController.java @@ -11,6 +11,7 @@ import org.codiki.domain.publication.exception.NoPublicationSearchResultExceptio import org.codiki.domain.publication.exception.PublicationNotFoundException; import org.codiki.domain.publication.model.Publication; import org.codiki.domain.publication.model.PublicationEditionRequest; +import org.codiki.exposition.publication.model.PreviewContentRequest; import org.codiki.exposition.publication.model.PublicationDto; import org.codiki.exposition.publication.model.PublicationEditionRequestDto; import org.springframework.web.bind.annotation.DeleteMapping; @@ -91,4 +92,9 @@ public class PublicationController { return publications; } + + @PostMapping("/preview") + public String previewPublicationContent(@RequestBody PreviewContentRequest request) { + return publicationUseCases.previewContent(request.text()); + } } diff --git a/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/model/PreviewContentRequest.java b/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/model/PreviewContentRequest.java new file mode 100644 index 0000000..0db7814 --- /dev/null +++ b/backend/codiki-exposition/src/main/java/org/codiki/exposition/publication/model/PreviewContentRequest.java @@ -0,0 +1,5 @@ +package org.codiki.exposition.publication.model; + +public record PreviewContentRequest( + String text +) {} diff --git a/frontend/src/app/core/rest-services/publications/publication.rest-service.ts b/frontend/src/app/core/rest-services/publications/publication.rest-service.ts index 20925f3..8c47858 100644 --- a/frontend/src/app/core/rest-services/publications/publication.rest-service.ts +++ b/frontend/src/app/core/rest-services/publications/publication.rest-service.ts @@ -26,4 +26,9 @@ export class PublicationRestService { params = params.set('query', searchCriteria); return lastValueFrom(this.httpClient.get('/api/publications', { params })); } + + preview(publicationText: string): Promise { + const request = { text: publicationText }; + return lastValueFrom(this.httpClient.post('/api/publications/preview', request)); + } } diff --git a/frontend/src/app/pages/publication-edition/publication-edition.component.html b/frontend/src/app/pages/publication-edition/publication-edition.component.html index 1dffaa9..242b1f8 100644 --- a/frontend/src/app/pages/publication-edition/publication-edition.component.html +++ b/frontend/src/app/pages/publication-edition/publication-edition.component.html @@ -8,7 +8,7 @@

Modification de l'article {{ publication.title }}

- +
@@ -66,7 +66,19 @@ - +
+ @if ((isPreviewing$ | async) === true) { +

Preview is loading...

+ + } @else { + +
+

{{ publication.title }}

+

{{ publication.description }}

+
+
+ } +