X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=c2bb1c8ebe93f2c015a9596787ba798d701479af;hp=ba127656dfb80913bfad9f311091277948cc5f4c;hb=b3c3c6547d75c24d0f2646b1cdc02c51d5f0a3c0;hpb=cb6325fa54d93612c5aad307204d30600b27af81 diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index ba12765..c2bb1c8 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -1,5 +1,5 @@ /* - * Sone - WebInterface.java - Copyright © 2010 David Roden + * Sone - WebInterface.java - Copyright © 2010–2012 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -110,7 +110,7 @@ import net.pterodactylus.util.cache.DefaultCacheItem; import net.pterodactylus.util.cache.MemoryCache; import net.pterodactylus.util.cache.ValueRetriever; import net.pterodactylus.util.collection.SetBuilder; -import net.pterodactylus.util.filter.Filters; +import net.pterodactylus.util.collection.filter.Filters; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.notify.Notification; import net.pterodactylus.util.notify.NotificationManager; @@ -122,6 +122,7 @@ import net.pterodactylus.util.template.FormatFilter; import net.pterodactylus.util.template.HtmlFilter; import net.pterodactylus.util.template.MatchFilter; import net.pterodactylus.util.template.ModFilter; +import net.pterodactylus.util.template.PaginationFilter; import net.pterodactylus.util.template.Provider; import net.pterodactylus.util.template.ReflectionAccessor; import net.pterodactylus.util.template.ReplaceFilter; @@ -138,9 +139,9 @@ import net.pterodactylus.util.web.RedirectPage; import net.pterodactylus.util.web.StaticPage; import net.pterodactylus.util.web.TemplatePage; import freenet.clients.http.SessionManager; +import freenet.clients.http.SessionManager.Session; import freenet.clients.http.ToadletContainer; import freenet.clients.http.ToadletContext; -import freenet.clients.http.SessionManager.Session; import freenet.l10n.BaseL10n; import freenet.support.api.HTTPRequest; @@ -243,7 +244,7 @@ public class WebInterface implements CoreListener { templateContextFactory.addFilter("html", new HtmlFilter()); templateContextFactory.addFilter("replace", new ReplaceFilter()); templateContextFactory.addFilter("store", new StoreFilter()); - templateContextFactory.addFilter("l10n", new L10nFilter(getL10n())); + templateContextFactory.addFilter("l10n", new L10nFilter(this)); templateContextFactory.addFilter("substring", new SubstringFilter()); templateContextFactory.addFilter("xml", new XmlFilter()); templateContextFactory.addFilter("change", new RequestChangeFilter()); @@ -259,6 +260,7 @@ public class WebInterface implements CoreListener { templateContextFactory.addFilter("in", new ContainsFilter()); templateContextFactory.addFilter("unique", new UniqueElementFilter()); templateContextFactory.addFilter("mod", new ModFilter()); + templateContextFactory.addFilter("paginate", new PaginationFilter()); templateContextFactory.addProvider(Provider.TEMPLATE_CONTEXT_PROVIDER); templateContextFactory.addProvider(new ClassPathTemplateProvider()); templateContextFactory.addTemplateObject("webInterface", this); @@ -583,6 +585,7 @@ public class WebInterface implements CoreListener { Template emptyTemplate = TemplateParser.parse(new StringReader("")); Template loginTemplate = TemplateParser.parse(createReader("/templates/login.html")); Template indexTemplate = TemplateParser.parse(createReader("/templates/index.html")); + Template newTemplate = TemplateParser.parse(createReader("/templates/new.html")); Template knownSonesTemplate = TemplateParser.parse(createReader("/templates/knownSones.html")); Template createSoneTemplate = TemplateParser.parse(createReader("/templates/createSone.html")); Template createPostTemplate = TemplateParser.parse(createReader("/templates/createPost.html")); @@ -613,6 +616,7 @@ public class WebInterface implements CoreListener { PageToadletFactory pageToadletFactory = new PageToadletFactory(sonePlugin.pluginRespirator().getHLSimpleClient(), "/Sone/"); pageToadlets.add(pageToadletFactory.createPageToadlet(new RedirectPage("", "index.html"))); pageToadlets.add(pageToadletFactory.createPageToadlet(new IndexPage(indexTemplate, this), "Index")); + pageToadlets.add(pageToadletFactory.createPageToadlet(new NewPage(newTemplate, this), "New")); pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateSonePage(createSoneTemplate, this), "CreateSone")); pageToadlets.add(pageToadletFactory.createPageToadlet(new KnownSonesPage(knownSonesTemplate, this), "KnownSones")); pageToadlets.add(pageToadletFactory.createPageToadlet(new EditProfilePage(editProfileTemplate, this), "EditProfile")); @@ -747,7 +751,7 @@ public class WebInterface implements CoreListener { } } } catch (IOException ioe1) { - logger.log(Level.WARNING, "Could not parse post text: " + text, ioe1); + logger.log(Level.WARNING, String.format("Could not parse post text: %s", text), ioe1); } return Filters.filteredSet(mentionedSones, Sone.LOCAL_SONE_FILTER); } @@ -1041,7 +1045,7 @@ public class WebInterface implements CoreListener { try { return templateCache.get(templateName); } catch (CacheException ce1) { - logger.log(Level.WARNING, "Could not get template for " + templateName + "!", ce1); + logger.log(Level.WARNING, String.format("Could not get template for %s!", templateName), ce1); return null; } } @@ -1064,7 +1068,7 @@ public class WebInterface implements CoreListener { try { template = TemplateParser.parse(templateReader); } catch (TemplateException te1) { - logger.log(Level.WARNING, "Could not parse template “" + templateName + "” for inclusion!", te1); + logger.log(Level.WARNING, String.format("Could not parse template “%s” for inclusion!", templateName), te1); } return template; }