🚧 Add notification manager to web interface module
[Sone.git] / src / main / java / net / pterodactylus / sone / web / WebInterface.java
index 12526df..bcc7a11 100644 (file)
@@ -19,9 +19,7 @@ package net.pterodactylus.sone.web;
 
 import static com.google.common.collect.FluentIterable.from;
 import static java.util.logging.Logger.getLogger;
-import static net.pterodactylus.util.template.TemplateParser.parse;
 
-import java.io.StringReader;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -46,6 +44,7 @@ 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;
 import net.pterodactylus.sone.main.Loaders;
 import net.pterodactylus.sone.main.PluginHomepage;
 import net.pterodactylus.sone.main.PluginVersion;
@@ -70,7 +69,6 @@ import net.pterodactylus.sone.web.ajax.DeletePostAjaxPage;
 import net.pterodactylus.sone.web.ajax.DeleteProfileFieldAjaxPage;
 import net.pterodactylus.sone.web.ajax.DeleteReplyAjaxPage;
 import net.pterodactylus.sone.web.ajax.DismissNotificationAjaxPage;
-import net.pterodactylus.sone.web.ajax.DistrustAjaxPage;
 import net.pterodactylus.sone.web.ajax.EditAlbumAjaxPage;
 import net.pterodactylus.sone.web.ajax.EditImageAjaxPage;
 import net.pterodactylus.sone.web.ajax.EditProfileFieldAjaxPage;
@@ -87,12 +85,10 @@ import net.pterodactylus.sone.web.ajax.LikeAjaxPage;
 import net.pterodactylus.sone.web.ajax.LockSoneAjaxPage;
 import net.pterodactylus.sone.web.ajax.MarkAsKnownAjaxPage;
 import net.pterodactylus.sone.web.ajax.MoveProfileFieldAjaxPage;
-import net.pterodactylus.sone.web.ajax.TrustAjaxPage;
 import net.pterodactylus.sone.web.ajax.UnbookmarkAjaxPage;
 import net.pterodactylus.sone.web.ajax.UnfollowSoneAjaxPage;
 import net.pterodactylus.sone.web.ajax.UnlikeAjaxPage;
 import net.pterodactylus.sone.web.ajax.UnlockSoneAjaxPage;
-import net.pterodactylus.sone.web.ajax.UntrustAjaxPage;
 import net.pterodactylus.sone.web.page.FreenetRequest;
 import net.pterodactylus.sone.web.page.TemplateRenderer;
 import net.pterodactylus.sone.web.pages.*;
@@ -107,7 +103,6 @@ import net.pterodactylus.util.web.TemplatePage;
 import freenet.clients.http.SessionManager;
 import freenet.clients.http.SessionManager.Session;
 import freenet.clients.http.ToadletContext;
-import freenet.l10n.BaseL10n;
 
 import com.codahale.metrics.*;
 import com.google.common.base.Optional;
@@ -129,7 +124,7 @@ public class WebInterface implements SessionProvider {
        private final Loaders loaders;
 
        /** The notification manager. */
-       private final NotificationManager notificationManager = new NotificationManager();
+       private final NotificationManager notificationManager;
 
        /** The Sone plugin. */
        private final SonePlugin sonePlugin;
@@ -160,6 +155,7 @@ public class WebInterface implements SessionProvider {
 
        private final PageToadletRegistry pageToadletRegistry;
        private final MetricRegistry metricRegistry;
+       private final Translation translation;
 
        /** The â€śnew Sone” notification. */
        private final ListNotification<Sone> newSoneNotification;
@@ -211,7 +207,8 @@ public class WebInterface implements SessionProvider {
                        ParserFilter parserFilter, ShortenFilter shortenFilter,
                        RenderFilter renderFilter,
                        LinkedElementRenderFilter linkedElementRenderFilter,
-                       PageToadletRegistry pageToadletRegistry, MetricRegistry metricRegistry) {
+                       PageToadletRegistry pageToadletRegistry, MetricRegistry metricRegistry, Translation translation, L10nFilter l10nFilter,
+                       NotificationManager notificationManager) {
                this.sonePlugin = sonePlugin;
                this.loaders = loaders;
                this.listNotificationFilter = listNotificationFilter;
@@ -225,9 +222,11 @@ public class WebInterface implements SessionProvider {
                this.linkedElementRenderFilter = linkedElementRenderFilter;
                this.pageToadletRegistry = pageToadletRegistry;
                this.metricRegistry = metricRegistry;
+               this.l10nFilter = l10nFilter;
+               this.translation = translation;
+               this.notificationManager = notificationManager;
                formPassword = sonePlugin.pluginRespirator().getToadletContainer().getFormPassword();
                soneTextParser = new SoneTextParser(getCore(), getCore());
-               l10nFilter = new L10nFilter(getL10n());
 
                this.templateContextFactory = templateContextFactory;
                templateContextFactory.addTemplateObject("webInterface", this);
@@ -381,13 +380,8 @@ public class WebInterface implements SessionProvider {
                return listNotificationFilter.filterNotifications(notificationManager.getNotifications(), currentSone);
        }
 
-       /**
-        * Returns the l10n helper of the node.
-        *
-        * @return The node’s l10n helper
-        */
-       public BaseL10n getL10n() {
-               return sonePlugin.l10n().getBase();
+       public Translation getTranslation() {
+               return translation;
        }
 
        /**
@@ -579,9 +573,6 @@ public class WebInterface implements SessionProvider {
                pageToadletRegistry.addPage(new UploadImagePage(this, loaders, templateRenderer));
                pageToadletRegistry.addPage(new EditImagePage(this, loaders, templateRenderer));
                pageToadletRegistry.addPage(new DeleteImagePage(this, loaders, templateRenderer));
-               pageToadletRegistry.addPage(new TrustPage(this, loaders, templateRenderer));
-               pageToadletRegistry.addPage(new DistrustPage(this, loaders, templateRenderer));
-               pageToadletRegistry.addPage(new UntrustPage(this, loaders, templateRenderer));
                pageToadletRegistry.addPage(new MarkAsKnownPage(this, loaders, templateRenderer));
                pageToadletRegistry.addPage(new BookmarkPage(this, loaders, templateRenderer));
                pageToadletRegistry.addPage(new UnbookmarkPage(this, loaders, templateRenderer));
@@ -624,9 +615,6 @@ public class WebInterface implements SessionProvider {
                pageToadletRegistry.addPage(new UnfollowSoneAjaxPage(this));
                pageToadletRegistry.addPage(new EditAlbumAjaxPage(this));
                pageToadletRegistry.addPage(new EditImageAjaxPage(this, parserFilter, shortenFilter, renderFilter));
-               pageToadletRegistry.addPage(new TrustAjaxPage(this));
-               pageToadletRegistry.addPage(new DistrustAjaxPage(this));
-               pageToadletRegistry.addPage(new UntrustAjaxPage(this));
                pageToadletRegistry.addPage(new LikeAjaxPage(this));
                pageToadletRegistry.addPage(new UnlikeAjaxPage(this));
                pageToadletRegistry.addPage(new GetLikesAjaxPage(this));