diff options
| author | Jesse Morgan <jesse@jesterpm.net> | 2014-02-22 19:15:46 -0800 | 
|---|---|---|
| committer | Jesse Morgan <jesse@jesterpm.net> | 2014-02-22 19:15:46 -0800 | 
| commit | 3249693ea33fdfa17612493e0f7ffc19d7649301 (patch) | |
| tree | 795ebe5fbd2667c0aa9e13ef80d302852ebf8c68 /src | |
| parent | 42503d407a5ec4efdb61a4d009f1bd46ffc8a965 (diff) | |
Adding Author and Feed Cookie.20140222a
* 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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/p4square/grow/backend/feed/FeedDataProvider.java | 2 | ||||
| -rw-r--r-- | src/com/p4square/grow/frontend/FeedData.java | 10 | ||||
| -rw-r--r-- | src/com/p4square/grow/frontend/FeedResource.java | 8 | ||||
| -rw-r--r-- | src/com/p4square/grow/frontend/GrowFrontend.java | 2 | ||||
| -rw-r--r-- | src/com/p4square/grow/frontend/TrainingPageResource.java | 23 | ||||
| -rw-r--r-- | src/templates/macros/common-page.ftl | 2 | ||||
| -rw-r--r-- | src/templates/macros/common.ftl | 1 | ||||
| -rw-r--r-- | src/templates/templates/communityfeed.ftl | 13 | 
8 files changed, 45 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 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>      <!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>  | 
