From 2f5374598fbdfbf5ccdf44930706133bc7986e83 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Mon, 27 Jan 2020 21:23:00 +0100 Subject: Wiki: Provide feedback after editing. Change-Id: I6530be803f5f4218008c07d00ad3c6f739a1eb7a --- .../java/eu/mulk/mulkcms2/benki/wiki/WikiResource.java | 16 ++++++++++++++-- src/main/resources/templates/benki/wiki/wikiPage.html | 13 ++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiResource.java b/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiResource.java index 30cae98..0f7aa3f 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiResource.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiResource.java @@ -1,5 +1,6 @@ package eu.mulk.mulkcms2.benki.wiki; +import static javax.ws.rs.core.MediaType.APPLICATION_JSON; import static javax.ws.rs.core.MediaType.TEXT_HTML; import eu.mulk.mulkcms2.benki.users.User; @@ -16,6 +17,8 @@ import java.time.format.FormatStyle; import java.time.temporal.TemporalAccessor; import java.util.Optional; import javax.inject.Inject; +import javax.json.JsonObject; +import javax.json.spi.JsonProvider; import javax.transaction.Transactional; import javax.ws.rs.BadRequestException; import javax.ws.rs.FormParam; @@ -39,6 +42,8 @@ public class WikiResource { private static DateTimeFormatter humanDateFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG, FormatStyle.SHORT); + private static JsonProvider jsonProvider = JsonProvider.provider(); + @ResourcePath("benki/wiki/wikiPage.html") @Inject Template wikiPage; @@ -71,14 +76,15 @@ public class WikiResource { @Path("/{pageName}") @Authenticated @Transactional - public void updatePage( + @Produces(APPLICATION_JSON) + public JsonObject updatePage( @PathParam("pageName") String pageName, @FormParam("wiki-title") String title, @FormParam("wiki-content") String content) { if (title == null && content == null) { // No changes, nothing to do. - return; + return jsonProvider.createObjectBuilder().add("status", "ok").build(); } if (title != null) { @@ -112,6 +118,12 @@ public class WikiResource { User.find("from BenkiUser u join u.nicknames n where ?1 = n", userName).singleResult()); pageRevision.persistAndFlush(); + + return jsonProvider + .createObjectBuilder() + .add("status", "ok") + .add("content", pageRevision.enrichedContent()) + .build(); } @GET diff --git a/src/main/resources/templates/benki/wiki/wikiPage.html b/src/main/resources/templates/benki/wiki/wikiPage.html index 901b300..dbfc9c7 100644 --- a/src/main/resources/templates/benki/wiki/wikiPage.html +++ b/src/main/resources/templates/benki/wiki/wikiPage.html @@ -8,9 +8,11 @@