From 3102d8bce3426d9cf41aeaf201c360d342677770 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 9 Apr 2016 14:22:20 -0700 Subject: Switching from Ivy+Ant to Maven. --- .../grow/frontend/NewBelieverResource.java | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/main/java/com/p4square/grow/frontend/NewBelieverResource.java (limited to 'src/main/java/com/p4square/grow/frontend/NewBelieverResource.java') diff --git a/src/main/java/com/p4square/grow/frontend/NewBelieverResource.java b/src/main/java/com/p4square/grow/frontend/NewBelieverResource.java new file mode 100644 index 0000000..8fe078a --- /dev/null +++ b/src/main/java/com/p4square/grow/frontend/NewBelieverResource.java @@ -0,0 +1,72 @@ +/* + * Copyright 2014 Jesse Morgan + */ + +package com.p4square.grow.frontend; + +import freemarker.template.Template; + +import org.restlet.data.CookieSetting; +import org.restlet.data.MediaType; +import org.restlet.data.Status; +import org.restlet.representation.Representation; +import org.restlet.ext.freemarker.TemplateRepresentation; + +import org.apache.log4j.Logger; + +import com.p4square.fmfacade.FreeMarkerPageResource; + +/** + * This resource displays the transitional page between chapters. + * + * @author Jesse Morgan + */ +public class NewBelieverResource extends FreeMarkerPageResource { + private static final Logger LOG = Logger.getLogger(NewBelieverResource.class); + + public static final String COOKIE_NAME = "seeker"; + + private GrowFrontend mGrowFrontend; + + @Override + public void doInit() { + super.doInit(); + + mGrowFrontend = (GrowFrontend) getApplication(); + } + + /** + * Display the New Believer page. + * + * The New Believer page creates a cookie to remember the user, + * explains what's going on, and then asks the user to go to the login + * page. + * + * When the user hits the {@link AccountRedirectResource} the cookie + * is read and the user is moved ahead to the training section. + */ + @Override + protected Representation get() { + Template t = mGrowFrontend.getTemplate("templates/newbeliever.ftl"); + + try { + if (t == null) { + setStatus(Status.CLIENT_ERROR_NOT_FOUND); + return ErrorPage.TEMPLATE_NOT_FOUND; + } + + // Set the new believer cookie + CookieSetting cookie = new CookieSetting(COOKIE_NAME, "true"); + cookie.setPath("/"); + getRequest().getCookies().add(cookie); + getResponse().getCookieSettings().add(cookie); + + return new TemplateRepresentation(t, getRootObject(), MediaType.TEXT_HTML); + + } catch (Exception e) { + LOG.fatal("Could not render page: " + e.getMessage(), e); + setStatus(Status.SERVER_ERROR_INTERNAL); + return ErrorPage.RENDER_ERROR; + } + } +} -- cgit v1.2.3