summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/p4square/grow/backend/feed/FeedDataProvider.java2
-rw-r--r--src/com/p4square/grow/frontend/FeedData.java10
-rw-r--r--src/com/p4square/grow/frontend/FeedResource.java8
-rw-r--r--src/com/p4square/grow/frontend/GrowFrontend.java2
-rw-r--r--src/com/p4square/grow/frontend/TrainingPageResource.java23
-rw-r--r--src/templates/macros/common-page.ftl2
-rw-r--r--src/templates/macros/common.ftl1
-rw-r--r--src/templates/templates/communityfeed.ftl13
-rw-r--r--web/style.css7
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<String> 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<String> 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<String> 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 2ad3ed6..aaf51a4 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 7b36538..0c8f656 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>
<!doctype html>
<html>
<head>
@@ -24,4 +25,5 @@
</body>
</html>
+ </#compress>
</#macro>
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>
<div id="thefeed">
<h2>The Feed</h2>
@@ -6,8 +7,9 @@
<#assign messages = feeddata.getMessages(chapter, thread.id)>
<article>
<div class="question" id="${thread.id}">
- Q: ${thread.message.message!""}
- <div><a class="reply" href="#" onclick="answerQuestion('${thread.id}'); return false;">Answer</a></div>
+ <p>Q: ${thread.message.message!""}</p>
+ <div class="author">By ${thread.message.author.firstName}</div>
+ <div> <a class="reply" href="#" onclick="answerQuestion('${thread.id}'); return false;">Answer</a></div>
</div>
<div class="answer hidden" id="answer-${thread.id}">
<form action="${dynamicRoot}/account/feed/${chapter}/${thread.id}" method="post">
@@ -17,9 +19,10 @@
</div>
<#list messages as msg>
<div class="answer slider" id="${msg.id}">
- A: ${msg.message!""}
+ <p>A: ${msg.message!""}</p>
+ <div class="author">By ${thread.message.author.firstName}</div>
<#if msg_has_next && msg_index == 0>
- <div><a class="readmore" href="#" onclick="showAnswers(this); return false;">(show more)</a></div>
+ <div><a class="readmore" href="#" onclick="showAnswers(this); return false;">(show more answers)</a></div>
</#if>
</div>
</#list>
@@ -34,4 +37,4 @@
</div>
</article>
</div>
-
+</#escape>
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;