X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=4c41581a06b3e7f10211ef2fc830d1098f1f0654;hb=60926d0dc3b2139029c3fcb0b3d28caccf4b83b3;hp=7f53419625842712ba16f8f401d73bead547fc55;hpb=05f968bfa954585e942bbaff078d8932429f3175;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index 7f53419..4c41581 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -40,6 +40,7 @@ import net.pterodactylus.sone.core.CoreListener; import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.L10nFilter; @@ -169,6 +170,9 @@ public class WebInterface implements CoreListener { /** The Sone text parser. */ private final SoneTextParser soneTextParser; + /** The parser filter. */ + private final ParserFilter parserFilter; + /** The “new Sone” notification. */ private final ListNotification newSoneNotification; @@ -176,13 +180,13 @@ public class WebInterface implements CoreListener { private final ListNotification newPostNotification; /** The “new reply” notification. */ - private final ListNotification newReplyNotification; + private final ListNotification newReplyNotification; /** The invisible “local post” notification. */ private final ListNotification localPostNotification; /** The invisible “local reply” notification. */ - private final ListNotification localReplyNotification; + private final ListNotification localReplyNotification; /** The “you have been mentioned” notification. */ private final ListNotification mentionNotification; @@ -241,7 +245,7 @@ public class WebInterface implements CoreListener { templateContextFactory.addFilter("match", new MatchFilter()); templateContextFactory.addFilter("css", new CssClassNameFilter()); templateContextFactory.addFilter("js", new JavascriptFilter()); - templateContextFactory.addFilter("parse", new ParserFilter(getCore(), templateContextFactory, soneTextParser)); + templateContextFactory.addFilter("parse", parserFilter = new ParserFilter(getCore(), templateContextFactory, soneTextParser)); templateContextFactory.addFilter("unknown", new UnknownDateFilter(getL10n(), "View.Sone.Text.UnknownDate")); templateContextFactory.addFilter("format", new FormatFilter()); templateContextFactory.addFilter("sort", new CollectionSortFilter()); @@ -266,10 +270,10 @@ public class WebInterface implements CoreListener { localPostNotification = new ListNotification("local-post-notification", "posts", localPostNotificationTemplate, false); Template newReplyNotificationTemplate = TemplateParser.parse(createReader("/templates/notify/newReplyNotification.html")); - newReplyNotification = new ListNotification("new-reply-notification", "replies", newReplyNotificationTemplate, false); + newReplyNotification = new ListNotification("new-reply-notification", "replies", newReplyNotificationTemplate, false); Template localReplyNotificationTemplate = TemplateParser.parse(createReader("/templates/notify/newReplyNotification.html")); - localReplyNotification = new ListNotification("local-reply-notification", "replies", localReplyNotificationTemplate, false); + localReplyNotification = new ListNotification("local-reply-notification", "replies", localReplyNotificationTemplate, false); Template mentionNotificationTemplate = TemplateParser.parse(createReader("/templates/notify/mentionNotification.html")); mentionNotification = new ListNotification("mention-notification", "posts", mentionNotificationTemplate, false); @@ -464,8 +468,8 @@ public class WebInterface implements CoreListener { * * @return The new replies */ - public Set getNewReplies() { - return new SetBuilder().addAll(newReplyNotification.getElements()).addAll(localReplyNotification.getElements()).get(); + public Set getNewReplies() { + return new SetBuilder().addAll(newReplyNotification.getElements()).addAll(localReplyNotification.getElements()).get(); } /** @@ -667,7 +671,7 @@ public class WebInterface implements CoreListener { pageToadlets.add(pageToadletFactory.createPageToadlet(new FollowSoneAjaxPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new UnfollowSoneAjaxPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new EditAlbumAjaxPage(this))); - pageToadlets.add(pageToadletFactory.createPageToadlet(new EditImageAjaxPage(this))); + pageToadlets.add(pageToadletFactory.createPageToadlet(new EditImageAjaxPage(this, parserFilter))); pageToadlets.add(pageToadletFactory.createPageToadlet(new TrustAjaxPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new DistrustAjaxPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new UntrustAjaxPage(this))); @@ -805,7 +809,7 @@ public class WebInterface implements CoreListener { * {@inheritDoc} */ @Override - public void newReplyFound(Reply reply) { + public void newReplyFound(PostReply reply) { boolean isLocal = getCore().isLocalSone(reply.getSone()); if (isLocal) { localReplyNotification.add(reply); @@ -845,7 +849,7 @@ public class WebInterface implements CoreListener { * {@inheritDoc} */ @Override - public void markReplyKnown(Reply reply) { + public void markReplyKnown(PostReply reply) { newReplyNotification.remove(reply); localReplyNotification.remove(reply); mentionNotification.remove(reply.getPost()); @@ -872,7 +876,7 @@ public class WebInterface implements CoreListener { * {@inheritDoc} */ @Override - public void replyRemoved(Reply reply) { + public void replyRemoved(PostReply reply) { newReplyNotification.remove(reply); localReplyNotification.remove(reply); }