X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FEditImageAjaxPage.java;h=d6256c10456c5a4cc29af7a679b7fe20cac9fa74;hp=6f67ccb78957e37141640ced3c5870892382d1d0;hb=fecc40a37c481ea7c8d0aa5d13331834d165de6a;hpb=c4ae226ec5052116cefc542ae2017036a7bc6332 diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/EditImageAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/EditImageAjaxPage.java index 6f67ccb..d6256c1 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/EditImageAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/EditImageAjaxPage.java @@ -17,15 +17,16 @@ package net.pterodactylus.sone.web.ajax; +import com.google.common.collect.ImmutableMap; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.template.ParserFilter; +import net.pterodactylus.sone.template.RenderFilter; +import net.pterodactylus.sone.template.ShortenFilter; import net.pterodactylus.sone.text.TextFilter; import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.template.TemplateContext; -import com.google.common.collect.ImmutableMap; - /** * Page that stores a user’s image modifications. * @@ -33,8 +34,9 @@ import com.google.common.collect.ImmutableMap; */ public class EditImageAjaxPage extends JsonPage { - /** Parser for image descriptions. */ private final ParserFilter parserFilter; + private final ShortenFilter shortenFilter; + private final RenderFilter renderFilter; /** * Creates a new edit image AJAX page. @@ -44,9 +46,11 @@ public class EditImageAjaxPage extends JsonPage { * @param parserFilter * The parser filter for image descriptions */ - public EditImageAjaxPage(WebInterface webInterface, ParserFilter parserFilter) { + public EditImageAjaxPage(WebInterface webInterface, ParserFilter parserFilter, ShortenFilter shortenFilter, RenderFilter renderFilter) { super("editImage.ajax", webInterface); this.parserFilter = parserFilter; + this.shortenFilter = shortenFilter; + this.renderFilter = renderFilter; } // @@ -83,7 +87,15 @@ public class EditImageAjaxPage extends JsonPage { String description = request.getHttpRequest().getParam("description").trim(); image.modify().setTitle(title).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update(); webInterface.getCore().touchConfiguration(); - return createSuccessJsonObject().put("imageId", image.getId()).put("title", image.getTitle()).put("description", image.getDescription()).put("parsedDescription", (String) parserFilter.format(new TemplateContext(), image.getDescription(), ImmutableMap.builder().put("sone", image.getSone()).build())); + return createSuccessJsonObject().put("imageId", image.getId()).put("title", image.getTitle()).put("description", image.getDescription()).put("parsedDescription", renderImageDescription(image)); + } + + private String renderImageDescription(Image image) { + TemplateContext templateContext = new TemplateContext(); + ImmutableMap parameters = ImmutableMap.builder().put("sone", image.getSone()).build(); + Object parts = parserFilter.format(templateContext, image.getDescription(), parameters); + Object shortenedParts = shortenFilter.format(templateContext, parts, parameters); + return (String) renderFilter.format(templateContext, shortenedParts, parameters); } }