Render templates in a thread-safe way.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / SoneTemplatePage.java
index 0b6b760..dc41865 100644 (file)
@@ -21,8 +21,10 @@ import java.util.Arrays;
 import java.util.Collection;
 
 import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.sone.main.SonePlugin;
 import net.pterodactylus.sone.web.page.Page;
 import net.pterodactylus.sone.web.page.TemplatePage;
+import net.pterodactylus.util.template.DataProvider;
 import net.pterodactylus.util.template.Template;
 import freenet.clients.http.SessionManager.Session;
 import freenet.clients.http.ToadletContext;
@@ -184,10 +186,14 @@ public class SoneTemplatePage extends TemplatePage {
         * {@inheritDoc}
         */
        @Override
-       protected void processTemplate(Request request, Template template) throws RedirectException {
-               super.processTemplate(request, template);
-               template.set("currentSone", getCurrentSone(request.getToadletContext()));
-               template.set("request", request);
+       protected void processTemplate(Request request, DataProvider dataProvider) throws RedirectException {
+               super.processTemplate(request, dataProvider);
+               dataProvider.set("currentSone", getCurrentSone(request.getToadletContext(), false));
+               dataProvider.set("request", request);
+               dataProvider.set("currentVersion", SonePlugin.VERSION);
+               dataProvider.set("hasLatestVersion", webInterface.getCore().getUpdateChecker().hasLatestVersion());
+               dataProvider.set("latestVersion", webInterface.getCore().getUpdateChecker().getLatestVersion());
+               dataProvider.set("latestVersionTime", webInterface.getCore().getUpdateChecker().getLatestVersionDate());
        }
 
        /**
@@ -195,7 +201,7 @@ public class SoneTemplatePage extends TemplatePage {
         */
        @Override
        protected String getRedirectTarget(Page.Request request) {
-               if (requiresLogin() && (getCurrentSone(request.getToadletContext()) == null)) {
+               if (requiresLogin() && (getCurrentSone(request.getToadletContext(), false) == null)) {
                        return "login.html";
                }
                return null;
@@ -207,7 +213,7 @@ public class SoneTemplatePage extends TemplatePage {
        @Override
        public boolean isEnabled(ToadletContext toadletContext) {
                if (requiresLogin()) {
-                       return getCurrentSone(toadletContext) != null;
+                       return getCurrentSone(toadletContext, false) != null;
                }
                return true;
        }