X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=27ef8d577499e41be4050562e953dd49cc409522;hb=bf509980d5097e67d1a32f6b53bef052b396137f;hp=69077ed324fe3dbe865b7e768fc55938d15cdb42;hpb=a5743ce8177323159e4d1828dced6021d27c4d62;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 69077ed..27ef8d5 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -17,22 +17,14 @@ package net.pterodactylus.sone.web; -import static java.util.logging.Logger.getLogger; -import static java.util.stream.Collectors.toSet; - import java.util.Collection; -import java.util.Set; import java.util.TimeZone; -import java.util.logging.Logger; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import javax.inject.Named; import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.core.ElementLoader; import net.pterodactylus.sone.core.event.*; -import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.L10nFilter; import net.pterodactylus.sone.freenet.Translation; @@ -41,10 +33,8 @@ import net.pterodactylus.sone.main.PluginHomepage; import net.pterodactylus.sone.main.PluginVersion; import net.pterodactylus.sone.main.PluginYear; import net.pterodactylus.sone.main.SonePlugin; -import net.pterodactylus.sone.notify.ListNotification; import net.pterodactylus.sone.notify.ListNotificationFilter; import net.pterodactylus.sone.notify.PostVisibilityFilter; -import net.pterodactylus.sone.notify.ReplyVisibilityFilter; import net.pterodactylus.sone.template.LinkedElementRenderFilter; import net.pterodactylus.sone.template.ParserFilter; import net.pterodactylus.sone.template.RenderFilter; @@ -89,7 +79,6 @@ import net.pterodactylus.util.web.TemplatePage; import com.codahale.metrics.*; import com.google.common.base.Optional; -import com.google.common.collect.ImmutableSet; import com.google.common.eventbus.Subscribe; import com.google.inject.Inject; import freenet.clients.http.ToadletContext; @@ -100,9 +89,6 @@ import freenet.clients.http.ToadletContext; */ public class WebInterface implements SessionProvider { - /** The logger. */ - private static final Logger logger = getLogger(WebInterface.class.getName()); - /** The loaders for templates, pages, and classpath providers. */ private final Loaders loaders; @@ -126,7 +112,6 @@ public class WebInterface implements SessionProvider { private final ListNotificationFilter listNotificationFilter; private final PostVisibilityFilter postVisibilityFilter; - private final ReplyVisibilityFilter replyVisibilityFilter; private final ElementLoader elementLoader; private final LinkedElementRenderFilter linkedElementRenderFilter; @@ -138,37 +123,23 @@ public class WebInterface implements SessionProvider { private final Translation translation; private final SessionProvider sessionProvider; - /** The “new post” notification. */ - private final ListNotification newPostNotification; - - /** The “new reply” notification. */ - private final ListNotification newReplyNotification; - - /** The invisible “local post” notification. */ - private final ListNotification localPostNotification; - - /** The invisible “local reply” notification. */ - private final ListNotification localReplyNotification; + private final NewElements newElements; @Inject public WebInterface(SonePlugin sonePlugin, Loaders loaders, ListNotificationFilter listNotificationFilter, - PostVisibilityFilter postVisibilityFilter, ReplyVisibilityFilter replyVisibilityFilter, - ElementLoader elementLoader, TemplateContextFactory templateContextFactory, - TemplateRenderer templateRenderer, - ParserFilter parserFilter, ShortenFilter shortenFilter, - RenderFilter renderFilter, - LinkedElementRenderFilter linkedElementRenderFilter, - PageToadletRegistry pageToadletRegistry, MetricRegistry metricRegistry, Translation translation, L10nFilter l10nFilter, - NotificationManager notificationManager, SessionProvider sessionProvider, - @Named("newRemotePost") ListNotification newPostNotification, - @Named("newRemotePostReply") ListNotification newReplyNotification, - @Named("localPost") ListNotification localPostNotification, - @Named("localReply") ListNotification localReplyNotification) { + PostVisibilityFilter postVisibilityFilter, + ElementLoader elementLoader, TemplateContextFactory templateContextFactory, + TemplateRenderer templateRenderer, + ParserFilter parserFilter, ShortenFilter shortenFilter, + RenderFilter renderFilter, + LinkedElementRenderFilter linkedElementRenderFilter, + PageToadletRegistry pageToadletRegistry, MetricRegistry metricRegistry, Translation translation, L10nFilter l10nFilter, + NotificationManager notificationManager, SessionProvider sessionProvider, + NewElements newElements) { this.sonePlugin = sonePlugin; this.loaders = loaders; this.listNotificationFilter = listNotificationFilter; this.postVisibilityFilter = postVisibilityFilter; - this.replyVisibilityFilter = replyVisibilityFilter; this.elementLoader = elementLoader; this.templateRenderer = templateRenderer; this.parserFilter = parserFilter; @@ -181,10 +152,7 @@ public class WebInterface implements SessionProvider { this.translation = translation; this.notificationManager = notificationManager; this.sessionProvider = sessionProvider; - this.newPostNotification = newPostNotification; - this.newReplyNotification = newReplyNotification; - this.localPostNotification = localPostNotification; - this.localReplyNotification = localReplyNotification; + this.newElements = newElements; formPassword = sonePlugin.pluginRespirator().getToadletContainer().getFormPassword(); this.templateContextFactory = templateContextFactory; @@ -206,15 +174,6 @@ public class WebInterface implements SessionProvider { return sonePlugin.core(); } - /** - * Returns the template context factory of the web interface. - * - * @return The template context factory - */ - public TemplateContextFactory getTemplateContextFactory() { - return templateContextFactory; - } - @Nullable @Override public Sone getCurrentSone(@Nonnull ToadletContext toadletContext) { @@ -258,24 +217,6 @@ public class WebInterface implements SessionProvider { return formPassword; } - @Nonnull - public Collection getNewPosts(@Nullable Sone currentSone) { - Set allNewPosts = ImmutableSet. builder() - .addAll(newPostNotification.getElements()) - .addAll(localPostNotification.getElements()) - .build(); - return allNewPosts.stream().filter(postVisibilityFilter.isVisible(currentSone)).collect(toSet()); - } - - @Nonnull - public Collection getNewReplies(@Nullable Sone currentSone) { - Set allNewReplies = ImmutableSet.builder() - .addAll(newReplyNotification.getElements()) - .addAll(localReplyNotification.getElements()) - .build(); - return allNewReplies.stream().filter(replyVisibilityFilter.isVisible(currentSone)).collect(toSet()); - } - // // ACTIONS // @@ -308,7 +249,7 @@ public class WebInterface implements SessionProvider { pageToadletRegistry.addPage(new RedirectPage("", "index.html")); pageToadletRegistry.addPage(new IndexPage(this, loaders, templateRenderer, postVisibilityFilter)); - pageToadletRegistry.addPage(new NewPage(this, loaders, templateRenderer)); + pageToadletRegistry.addPage(new NewPage(this, loaders, templateRenderer, newElements)); pageToadletRegistry.addPage(new CreateSonePage(this, loaders, templateRenderer)); pageToadletRegistry.addPage(new KnownSonesPage(this, loaders, templateRenderer)); pageToadletRegistry.addPage(new EditProfilePage(this, loaders, templateRenderer)); @@ -357,13 +298,13 @@ public class WebInterface implements SessionProvider { pageToadletRegistry.addPage(new TemplatePage("OpenSearch.xml", "application/opensearchdescription+xml", templateContextFactory, openSearchTemplate)); pageToadletRegistry.addPage(new GetImagePage(this)); pageToadletRegistry.addPage(new GetTranslationAjaxPage(this)); - pageToadletRegistry.addPage(new GetStatusAjaxPage(this, elementLoader, timeTextConverter, l10nFilter, TimeZone.getDefault())); - pageToadletRegistry.addPage(new GetNotificationsAjaxPage(this)); + pageToadletRegistry.addPage(new GetStatusAjaxPage(this, elementLoader, newElements, timeTextConverter, l10nFilter, TimeZone.getDefault())); + pageToadletRegistry.addPage(new GetNotificationsAjaxPage(this, templateContextFactory)); pageToadletRegistry.addPage(new DismissNotificationAjaxPage(this)); pageToadletRegistry.addPage(new CreatePostAjaxPage(this)); pageToadletRegistry.addPage(new CreateReplyAjaxPage(this)); - pageToadletRegistry.addPage(new GetReplyAjaxPage(this, replyTemplate)); - pageToadletRegistry.addPage(new GetPostAjaxPage(this, postTemplate)); + pageToadletRegistry.addPage(new GetReplyAjaxPage(this, templateContextFactory, replyTemplate)); + pageToadletRegistry.addPage(new GetPostAjaxPage(this, templateContextFactory, postTemplate)); pageToadletRegistry.addPage(new GetLinkedElementAjaxPage(this, elementLoader, linkedElementRenderFilter)); pageToadletRegistry.addPage(new GetTimesAjaxPage(this, timeTextConverter, l10nFilter, TimeZone.getDefault())); pageToadletRegistry.addPage(new MarkAsKnownAjaxPage(this));