From 3249693ea33fdfa17612493e0f7ffc19d7649301 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 22 Feb 2014 19:15:46 -0800 Subject: Adding Author and Feed Cookie. * Adding an Author indicator on the feed. * Adding showfeed cookie to enable/disable feed demo. * Hiding the feed on the introduction chapter. * Adding whitespace compression to all pages. --- .../grow/backend/feed/FeedDataProvider.java | 2 +- src/com/p4square/grow/frontend/FeedData.java | 10 ++++++++++ src/com/p4square/grow/frontend/FeedResource.java | 8 +------- src/com/p4square/grow/frontend/GrowFrontend.java | 2 +- .../grow/frontend/TrainingPageResource.java | 23 +++++++++++++++++++++- src/templates/macros/common-page.ftl | 2 ++ src/templates/macros/common.ftl | 1 - src/templates/templates/communityfeed.ftl | 13 +++++++----- web/style.css | 7 +++++++ 9 files changed, 52 insertions(+), 16 deletions(-) diff --git a/src/com/p4square/grow/backend/feed/FeedDataProvider.java b/src/com/p4square/grow/backend/feed/FeedDataProvider.java index 41b2dfa..6f090c0 100644 --- a/src/com/p4square/grow/backend/feed/FeedDataProvider.java +++ b/src/com/p4square/grow/backend/feed/FeedDataProvider.java @@ -19,7 +19,7 @@ import com.p4square.grow.provider.CollectionProvider; */ public interface FeedDataProvider { public static final Collection TOPICS = Collections.unmodifiableCollection( - Arrays.asList(new String[] { "seeker", "believer", "disciple", "teacher" })); + Arrays.asList(new String[] { "seeker", "believer", "disciple", "teacher", "leader" })); /** * @return a CollectionProvider of Threads. diff --git a/src/com/p4square/grow/frontend/FeedData.java b/src/com/p4square/grow/frontend/FeedData.java index eddc6a4..55e845c 100644 --- a/src/com/p4square/grow/frontend/FeedData.java +++ b/src/com/p4square/grow/frontend/FeedData.java @@ -5,6 +5,9 @@ package com.p4square.grow.frontend; import java.io.IOException; + +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import org.restlet.Context; @@ -25,6 +28,13 @@ import com.p4square.grow.provider.Provider; */ public class FeedData { + /** + * Allowed Topics. + */ + public static final HashSet TOPICS = new HashSet(Arrays.asList("seeker", "believer", + "disciple", "teacher", "leader")); + + private final Config mConfig; private final String mBackendURI; diff --git a/src/com/p4square/grow/frontend/FeedResource.java b/src/com/p4square/grow/frontend/FeedResource.java index eea89b1..13d0fa0 100644 --- a/src/com/p4square/grow/frontend/FeedResource.java +++ b/src/com/p4square/grow/frontend/FeedResource.java @@ -6,9 +6,6 @@ package com.p4square.grow.frontend; import java.io.IOException; -import java.util.Arrays; -import java.util.HashSet; - import org.restlet.data.Form; import org.restlet.data.Status; import org.restlet.representation.Representation; @@ -26,9 +23,6 @@ import com.p4square.grow.model.UserRecord; public class FeedResource extends ServerResource { private static final Logger LOG = Logger.getLogger(FeedResource.class); - private static final HashSet TOPICS = new HashSet(Arrays.asList("introduction", "seeker", "believer", - "disciple", "teacher")); - private Config mConfig; private FeedData mFeedData; @@ -63,7 +57,7 @@ public class FeedResource extends ServerResource { @Override protected Representation post(Representation entity) { try { - if (mTopic == null || mTopic.length() == 0 || !TOPICS.contains(mTopic)) { + if (mTopic == null || mTopic.length() == 0 || !FeedData.TOPICS.contains(mTopic)) { setStatus(Status.CLIENT_ERROR_NOT_FOUND); return ErrorPage.NOT_FOUND; } diff --git a/src/com/p4square/grow/frontend/GrowFrontend.java b/src/com/p4square/grow/frontend/GrowFrontend.java index ac323ec..d642a06 100644 --- a/src/com/p4square/grow/frontend/GrowFrontend.java +++ b/src/com/p4square/grow/frontend/GrowFrontend.java @@ -52,7 +52,7 @@ public class GrowFrontend extends FMFacade { private F1OAuthHelper mHelper; public GrowFrontend() { - mConfig = new Config(); + this(new Config()); } public GrowFrontend(Config config) { diff --git a/src/com/p4square/grow/frontend/TrainingPageResource.java b/src/com/p4square/grow/frontend/TrainingPageResource.java index a7ebd61..70a0d28 100644 --- a/src/com/p4square/grow/frontend/TrainingPageResource.java +++ b/src/com/p4square/grow/frontend/TrainingPageResource.java @@ -14,6 +14,7 @@ import java.util.Map; import freemarker.template.Template; +import org.restlet.data.CookieSetting; import org.restlet.data.Form; import org.restlet.data.MediaType; import org.restlet.data.Status; @@ -213,7 +214,27 @@ public class TrainingPageResource extends FreeMarkerPageResource { root.put("videos", videos); root.put("allowUserToSkip", allowUserToSkip); - boolean showfeed = getQueryValue("showfeed") != null; + // Optionally show the feed. + boolean showfeed = "true".equals(getRequest().getCookies().getFirstValue("showfeed")); + if (getQueryValue("showfeed") != null) { + CookieSetting cookie = new CookieSetting("showfeed", "true"); + cookie.setPath("/"); + if ("true".equals(getQueryValue("showfeed"))) { + showfeed = true; + getResponse().getCookieSettings().add(cookie); + } else { + showfeed = false; + cookie.setValue("false"); + cookie.setMaxAge(0); + getResponse().getCookieSettings().add(cookie); + } + } + + // Don't show the feed if the topic isn't allowed. + if (!FeedData.TOPICS.contains(mChapter)) { + showfeed = false; + } + root.put("showfeed", showfeed); if (showfeed) { root.put("feeddata", mFeedData); diff --git a/src/templates/macros/common-page.ftl b/src/templates/macros/common-page.ftl index 94cc5e3..1780036 100644 --- a/src/templates/macros/common-page.ftl +++ b/src/templates/macros/common-page.ftl @@ -1,4 +1,5 @@ <#macro commonpage> + <#compress> @@ -24,4 +25,5 @@ + diff --git a/src/templates/macros/common.ftl b/src/templates/macros/common.ftl index 513fc57..d388a4e 100644 --- a/src/templates/macros/common.ftl +++ b/src/templates/macros/common.ftl @@ -1,5 +1,4 @@ <#include "content.ftl"> <#include "noticebox.ftl"> - <#assign dynamicRoot = ""> <#assign staticRoot = ""> diff --git a/src/templates/templates/communityfeed.ftl b/src/templates/templates/communityfeed.ftl index 632a201..7e0fda5 100644 --- a/src/templates/templates/communityfeed.ftl +++ b/src/templates/templates/communityfeed.ftl @@ -1,3 +1,4 @@ +<#escape x as x?html>

The Feed

@@ -6,8 +7,9 @@ <#assign messages = feeddata.getMessages(chapter, thread.id)>
- Q: ${thread.message.message!""} - +

Q: ${thread.message.message!""}

+
By ${thread.message.author.firstName}
+
<#list messages as msg>
- A: ${msg.message!""} +

A: ${msg.message!""}

+
By ${thread.message.author.firstName}
<#if msg_has_next && msg_index == 0> - +
@@ -34,4 +37,4 @@
- + diff --git a/web/style.css b/web/style.css index 23f6a39..42ffdd7 100644 --- a/web/style.css +++ b/web/style.css @@ -368,6 +368,13 @@ footer a:hover { border-radius: 10px; } +#thefeed .author { + float: left; + font-style: italic; + color: #999; + font-size: 80%; +} + #thefeed article .question { background: #eeeeee; padding-bottom: 0.5em; -- cgit v1.2.3