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;
import net.pterodactylus.sone.core.Core;
import net.pterodactylus.sone.core.ElementLoader;
-import net.pterodactylus.sone.core.event.ImageInsertAbortedEvent;
-import net.pterodactylus.sone.core.event.ImageInsertFailedEvent;
-import net.pterodactylus.sone.core.event.ImageInsertFinishedEvent;
-import net.pterodactylus.sone.core.event.ImageInsertStartedEvent;
-import net.pterodactylus.sone.core.event.MarkPostKnownEvent;
-import net.pterodactylus.sone.core.event.MarkPostReplyKnownEvent;
-import net.pterodactylus.sone.core.event.MarkSoneKnownEvent;
-import net.pterodactylus.sone.core.event.NewPostFoundEvent;
-import net.pterodactylus.sone.core.event.NewPostReplyFoundEvent;
-import net.pterodactylus.sone.core.event.NewSoneFoundEvent;
-import net.pterodactylus.sone.core.event.PostRemovedEvent;
-import net.pterodactylus.sone.core.event.PostReplyRemovedEvent;
-import net.pterodactylus.sone.core.event.SoneInsertAbortedEvent;
-import net.pterodactylus.sone.core.event.SoneInsertedEvent;
-import net.pterodactylus.sone.core.event.SoneInsertingEvent;
-import net.pterodactylus.sone.core.event.SoneLockedEvent;
-import net.pterodactylus.sone.core.event.SoneRemovedEvent;
-import net.pterodactylus.sone.core.event.SoneUnlockedEvent;
-import net.pterodactylus.sone.core.event.UpdateFoundEvent;
+import net.pterodactylus.sone.core.event.*;
import net.pterodactylus.sone.data.Image;
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;
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;
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.*;
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;
private final Loaders loaders;
/** The notification manager. */
- private final NotificationManager notificationManager = new NotificationManager();
+ private final NotificationManager notificationManager;
/** The Sone plugin. */
private final SonePlugin sonePlugin;
private final PageToadletRegistry pageToadletRegistry;
private final MetricRegistry metricRegistry;
+ private final Translation translation;
/** The “new Sone” notification. */
private final ListNotification<Sone> newSoneNotification;
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;
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);
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;
}
/**
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));
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));
notificationManager.addNotification(imageInsertFailedNotification);
}
+ @Subscribe
+ public void debugActivated(@Nonnull DebugActivatedEvent debugActivatedEvent) {
+ pageToadletRegistry.activateDebugMode();
+ }
+
}